[英]How to run job parameters in spring batch with maven in CLI
我看過幾個 stackoverflow 問答,但在使用 maven 時,沒有一個在 CLI 中有作業參數。
我的參數設置如下:
@Value("#{jobParameters.getOrDefault('startTimestamp', null)}") Long startTimestamp
@Value("#{jobParameters.getOrDefault('endTimestamp', null)}") Long endTimestamp
我的 maven 命令是這樣的:
mvn clean spring-boot:run -Dspring.batch.job.names=myJob -Dspring.profiles.active=default,dev -f pom.xml
我不確定要添加什么。 以下不起作用:
-Dspring.batch.job.startTimestamp=1667790578000
-Dspring.batch.job.parameters.startTimestamp=1667790578000
如果你想通過 maven 傳遞作業參數,你可以使用:
mvn spring-boot:run -Dspring-boot.run.arguments="param1=value1 param2=value2"
您可以在此處找到文檔。
作業參數通過 jobLauncher 設置。 例如:
JobParameters jobParameters = new JobParametersBuilder()
.addLong("startTimestamp", 1667790578000L).toJobParameters();
JobExecution execution = jobLauncher.run(job, jobParameters);
如果要將參數作為屬性發送,則需要使用@Value
注釋將自定義屬性注入到啟動作業的 bean 中。
從命令行,您可以將作業參數作為鍵/值對傳遞:
java -jar myjob.jar name=foobar startTimestamp=1667790578000
我發現這是有效的。
mvn clean spring-boot:run -Drun.arguments=startTimestamp=1667790578000,endTimestamp=1667790578000 -Dspring.batch.job.names=myJob -Dspring.profiles.active=default,dev -f pom.xml
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.