Spring boot + gradle传递命令行args到application.property

时间:2017-12-13 09:47:11

标签: java spring spring-mvc spring-boot gradle

我使用带有Gradle的Spring Boot,我在Intelij中执行它:

10:43:37: Executing external task 'bootRun  -Drun.arguments="--
server.port=6666"'...

但我仍然在日志中看到:

  

使用端口初始化Tomcat:8080(http)

我见过这个,但它对我不起作用:https://stackoverflow.com/a/37053004/3871754

3 个答案:

答案 0 :(得分:5)

将命令行参数与Spring Gradle BootRun任务一起使用并不是很明显。以下是关于Spring Boot Issue Thread中主题的非常有趣的讨论。

今天如何做到这一点是将所有系统属性传递给线程中提到的bootRun任务,如下所示。

bootRun {
    systemProperties = System.properties
}

然后你可以简单地使用:

bootRun -Dserver.port=6666
  

s.b.c.e.t.TomcatEmbeddedServletContainer:Tomcat初始化为   港口:6666(http)

答案 1 :(得分:2)

以下语法对我有效,无需更改代码:

bootRun --args='--server.port=6666'

注意:单引号很重要

答案 2 :(得分:0)

Spring Boot Gradle插件仍然不提供开箱即用的此功能。但即使您不想在Gradle脚本中添加额外配置,也可以按照these rules中的命名约定使用环境变量解决此问题(也适用于自定义属性)。

例如,您可以使用以下命令更改端口:

SERVER_PORT=6666 ./gradlew bootRun