我试图从命令行运行Sping Boot 应用程序,并传递一个命令行参数。我尝试了几种方法,但都不起作用:-
Try 1: mvn spring-boot:run -DCALLBACK_PORT="8000"
Try 2: mvn spring-boot:run -D CALLBACK_PORT="8000"
Try 3: mvn spring-boot:run -DargLine="CALLBACK_PORT=8000"
Try 4: mvn -DargLine="CALLBACK_PORT=8000" spring-boot:run
在所有情况下,应用程序都会运行。我试图将其读为:-
String evnCallBackPort = System.getenv("CALLBACK_PORT");
System.out.println("CALLBACK_PORT: "+evnCallBackPort);
它输出回叫端口:零值
如何使用此命令行参数运行它?
2条答案
按热度按时间luaexgnf1#
首先,您应该将以下配置添加到pom文件中。
在pom文件中,您可以通过environmentVariables参数定义应用程序的环境变量。ref:https://docs.spring.io/spring-boot/docs/current/maven-plugin/reference/htmlsingle/#goals-run-parameters-details-arguments
其次,当您运行应用程序时,在命令行中添加相应的参数以填充pom文件中的占位符,在本例中为“${env.callbackport}”,相应的命令行参数为-Denv.callbackport=“3221”,类似于以下命令行:
你可以参考示例工程https://github.com/bluezealot/mvnparam/tree/master/java2ets上面命令行的输出是,注意输出“CALLBACK_PORT:三二二一”:
qqrboqgw2#
对于希望传递Properties(而不是env vars)的任何人,语法略有不同(源代码):
此外,还可以通过命令行执行此操作,命令行优先于上述配置: