【问题标题】:Can I pass an internal Spring Boot variable to gradlew?我可以将内部 Spring Boot 变量传递给 gradlew 吗?
【发布时间】:2019-09-24 01:40:30
【问题描述】:

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

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

和主文件:

application.properties

包含一行:

spring.profiles.active=test

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

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

我正在寻找类似./gradlew buildNeeded --spring.profiles.active=test 或任何可行的东西...

【问题讨论】:

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


【解决方案1】:

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

来自插件文档Passing arguments to your application

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

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

【讨论】:

    【解决方案2】:

    您可以使用项目属性:

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

    然后就可以运行项目了

    ./gradlew buildNeeded -Pspring.profiles.active=test
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-21
      • 2016-04-16
      相关资源
      最近更新 更多