我可以将内部Spring Boot变量传递给gradlew吗?

时间:2019-05-06 12:05:50

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

我有一个问题。在我的应用中,我确实有几种配置:

application-prod.properties
application-test.properties
application-dev.properties

和主文件:

application.properties

包含一行:

spring.profiles.active=test

要构建和运行我正在使用的应用./gradlew buildNeeded

我可以以某种方式传递属性后缀:test,prod,dev以便在构建过程中使用它,以便我可以制作不同的bash脚本以在测试和prod服务器上运行安装过程吗?

我正在寻找类似./gradlew buildNeeded --spring.profiles.active=test之类的东西或可以使用的东西...

2 个答案:

答案 0 :(得分:0)

您可以使用spring-gradle-plugin来实现。

来自插件文档Passing arguments to your application

  

与所有JavaExec任务一样,可以将参数从   使用Gradle 4.9或-时使用--args =''命令行   后来。例如,使用名为dev的配置文件运行您的应用程序   active可以使用以下命令:

./gradlew bootRun --args='--spring.profiles.active=dev'

答案 1 :(得分:0)

您可以使用项目属性:

task buildNeeded {
    doLast {
        def springProfile = project.properties.getOrDefault('spring.profiles.active', 'test')
        println springProfile
    }
}

然后您可以使用

运行项目
./gradlew buildNeeded -Pspring.profiles.active=test