我正在使用JCommander API进行Spring Boot - Spring Batch项目。
Project有多个作业,我需要将作业名称作为参数传递,以便我可以启动特定的作业。
java -jar myJar.jar -jobName job1
现在,如果我的job1
正在运行,并且我希望当时启动job2
,那么我无法这样做,因为端口已在使用中。因此,只有在job2
完成后才能启动job1
。
如果我尝试在不同的端口启动job2
,
java -jar myJar.jar -jobName job2 --server.port=8090
然后jCommander没有让它通过,因为我没有在JCommander配置中定义server.port
,即使我这样做,Spring Boot仅从属性文件中选择属性并尝试在同一端口运行 - {{1} }。
如何处理这种情况?
答案 0 :(得分:0)
documentation for Spring Boot说:
您可以使用属性文件,YAML文件,环境变量和 外部化配置的命令行参数。
您应该能够像这样配置server.port:
java -jar myJar.jar -Dserver.port=8090 -jobName job2
afaik你也可以设置 SERVER_PORT 环境变量:
SERVER_PORT=8090 java -jar myJar.jar -jobName job2