I have seen several stackoverflow Q&As but none had a job parameter in CLI while using maven.
My parameter is setup like this:
@Value("#{jobParameters.getOrDefault('startTimestamp', null)}") Long startTimestamp
My maven command is like this:
mvn clean spring-boot:run -Dspring.batch.job.names=myJob -Dspring.profiles.active=default,dev -f pom.xml
I am not sure what to add. the following is not working:
-Dspring.batch.job.startTimestamp=1667790578000
-Dspring.batch.job.parameters.startTimestamp=1667790578000
CodePudding user response:
Job parameters are set through the jobLauncher. For example:
JobParameters jobParameters = new JobParametersBuilder()
.addLong("startTimestamp", 1667790578000L).toJobParameters();
JobExecution execution = jobLauncher.run(job, jobParameters);
If you want to send the parameter as a property, you need to use the @Value
annotation to inject your custom property into the bean that launches the job.
CodePudding user response:
From the command line, you can pass job parameters as key/value pairs:
java -jar myjob.jar name=foobar startTimestamp=1667790578000