2017-07-13 94 views
1

我正在使用JCommander API進行Spring Boot - Spring Batch項目。使用jCommander的SpringBoot CLI屬性

項目有多個工作,我需要通過作業名稱作爲參數,所以我可以啓動特定的工作。現在

java -jar myJar.jar -jobName job1 

,如果我的job1正在運行,我想在那個時候推出job2,我不能這樣做,既然端口已在使用。所以我只能在job1完成時才能啓動job2

如果我嘗試在不同的端口啓動job2

java -jar myJar.jar -jobName job2 --server.port=8090

然後jCommander不是通過讓它,因爲我還沒有JCommander配置中定義server.port即使我這樣做,春天引導挑選財產僅從屬性文件並嘗試在同一端口運行 - 8080

如何處理這種情況?

回答

0

documentation for Spring Boot說:

您可以使用屬性文件,YAML文件,環境變量和 命令行參數來外部配置。

,你應該能夠配置server.port這樣的:

java -jar myJar.jar -Dserver.port=8090 -jobName job2 

據我所知,你可以設置SERVER_PORT環境變量太多:

SERVER_PORT=8090 java -jar myJar.jar -jobName job2 
+0

得到這個 - '產生的原因:COM .beust.jcommander.ParameterException:傳遞了主參數'-Dserver.port = 8090',但沒有在你的arg類中定義主參數......這基本上意味着jcommander停止了它。設置一個環境變量不適合我。 –