如何通过gradle任务使用spring profile运行bootRun
我正在尝试设置gradle以bootRun
启用各种spring配置文件来启动该过程。
我当前的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']
}
}
我想通过gradle
任务设置系统属性,然后执行bootRun
。
我的尝试看起来像这样:
task bootRunDevbootRunDev {
System.setProperty("spring.profiles.active", "Dev")
}
几个问题:
- 是
systemProperty
spring boot bootRun配置的一部分? - 是否可以在另一个任务中设置系统属性?
- 我下一步应该做什么?我需要先进行
bootRunDev
配置bootRun
- 我还有其他方法可以研究吗
-埃里克
回答:
最简单的方法是定义默认值并允许其被覆盖。我不确定在这种情况下systemProperty的用途是什么。简单的论据就可以了。
def profiles = 'prod'bootRun {
args = ["--spring.profiles.active=" + profiles]
}
运行dev:
./gradlew bootRun -Pdev
要添加对任务的依赖关系,可以执行以下操作:
task setDevProperties(dependsOn: bootRun) << { doFirst {
System.setProperty('spring.profiles.active', profiles)
}
}
有许多方法可以在Gradle中实现这一目标。
编辑:
为每个环境配置单独的配置文件。
if (project.hasProperty('prod')) { apply from: 'gradle/profile_prod.gradle'
} else {
apply from: 'gradle/profile_dev.gradle'
}
每种配置都可以覆盖任务,例如:
def profiles = 'prod'bootRun {
systemProperty "spring.profiles.active", activeProfile
}
prod
在这种情况下,通过提供标志来运行,如下所示:
./gradlew <task> -Pprod
以上是 如何通过gradle任务使用spring profile运行bootRun 的全部内容, 来源链接: utcz.com/qa/429096.html