如何通过 gradle 任务运行带有 spring 配置文件的 bootRun

2022-08-31 11:18:53

我正在尝试设置gradle以在启用各种弹簧配置文件的情况下启动该过程。bootRun

我当前的配置如下所示:bootRun

bootRun {
    // pass command line options from gradle to bootRun
    // usage: gradlew bootRun "-Dspring.profiles.active=local,protractor"
    if (System.properties.containsKey('spring.profiles.active')) {
        systemProperty "spring.profiles.active", System.properties['spring.profiles.active']
    }
}

我想用任务设置系统属性,然后执行。gradlebootRun

我的尝试看起来像这样:

task bootRunDev

bootRunDev  {
    System.setProperty("spring.profiles.active", "Dev")
}

几个问题:

  1. 是弹簧引导 bootRun 配置的一部分吗?systemProperty
  2. 是否可以在另一个任务中设置系统属性?
  3. 我的下一步应该是什么?我需要在之前进行配置bootRunDevbootRun
  4. 有没有另一种方法我应该研究

-埃里克


答案 1

Spring Boot v2 Gradle 插件文档提供了一个答案:

6.1. 将参数传递给应用程序

与所有 JavaExec 任务一样,在使用 Gradle 4.9 或更高版本时,可以使用命令行将参数传递到 bootRun 中。--args='<arguments>'

要运行活动配置文件设置为 dev 的服务器,请执行以下操作

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

答案 2

环境变量可用于设置弹簧属性,如文档中所述。因此,要设置活动配置文件 (),可以在 Unix 系统上使用以下代码:spring.profiles.active

SPRING_PROFILES_ACTIVE=test gradle clean bootRun

在 Windows 上,您可以使用:

SET SPRING_PROFILES_ACTIVE=test
gradle clean bootRun

推荐