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

问题描述 投票:0回答:2

我使用Spring Boot with Gradle,我在Intellij中执行:

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

但我仍然在日志中看到:

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

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

java spring spring-mvc spring-boot gradle
2个回答
4
投票

使用命令行参数与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)


0
投票

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

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

SERVER_PORT=6666 ./gradlew bootRun
© www.soinside.com 2019 - 2024. All rights reserved.