如何在Maven CLI中为Spring Batch传递Job参数
正确的Spring Batch Job参数传递方式(Maven命令行)
直接在Maven命令后通过--分隔应用程序参数,将Job参数以--参数名=参数值的形式传递即可,完整命令如下:
mvn clean spring-boot:run -Dspring.batch.job.names=myJob -Dspring.profiles.active=default,dev -f pom.xml -- --startTimestamp=1667790578000 --endTimestamp=1667790578000
关键说明:
- Maven的
-D是用来设置系统属性的,而Spring Batch的Job参数需要作为应用程序命令行参数传递,--是Mavenspring-boot:run插件用来区分Maven自身参数和应用程序参数的分隔符。 - 你现有的
@Value绑定代码无需修改,Spring Batch会自动将--后的命令行参数注入到jobParameters上下文中,#{jobParameters.getOrDefault('startTimestamp', null)}可以正常获取到对应的值。
为什么之前的方式无效:
你尝试的-Dspring.batch.job.startTimestamp和-Dspring.batch.job.parameters.startTimestamp都是把参数设置为系统属性,而非Job参数,自然无法通过jobParameters上下文获取。
内容的提问来源于stack exchange,提问作者Clark Ngo
相关产品推荐
相关产品推荐

