当在命令行上运行时,将spring配置文件传递给gradle bootRun的最简单方法是(对我来说)通过环境变量(例如SPRING_PROFILES_ACTIVE)。
与应用程序配置不同,gradle任务的配置不提供环境变量的输入。而且,由于VM选项看上去也不会被选中,所以我无法从IDE中运行这些任务。
我知道,我可以使用envvar集启动IntelliJ,但这似乎相当麻烦。
所以,我需要的是IntelliJ吊坠为SPRING_PROFILES_ACTIVE=dev,testdb gradle bootRun,除非有一个很好的理由,他们已经忽略了这个。
系统是linux,intellij 14。所讨论的项目是使用springboot,我想从在IntelliJ中运行springloaded+bootRun转到使用springloaded+bootRun和单独的compileGroovy调用,因为IntelliJ并不完全“理解”gradle文件,因此会隐藏错误。
发布于 2015-01-05 23:44:05
使System.properties在bootRun (或其他)任务中可用。
bootRun.systemProperties = System.properties这样,我们就可以在IntelliJ VM选项(如-Dspring.profiles.active=dev )中设置。
发布于 2015-07-17 15:27:36
下面是用Gradle / IntelliJ设置Spring环境变量/设置的解决方案
首先,定义一个基本属性文件,然后根据您的环境定义一个文件,例如:
@Configuration
@PropertySources(value = {@PropertySource("classpath:default.properties"),@PropertySource("classpath:${env}.properties")})在上面的例子中,请仔细注意@PropertySource("classpath:${env}.properties")。这是一个正在执行的环境变量。
接下来,将VM参数添加到IntelliJ (通过Gradle任务运行配置),或者作为参数添加到gradle命令行。

最后,在gradle任务中复制属性,就像@cfrick提到的那样,@mdjnewman正确地显示了:
tasks.withType(org.springframework.boot.gradle.run.BootRunTask) {
bootRun.systemProperties = System.properties
}发布于 2015-01-05 23:31:00
我已经成功地将以下内容添加到我的build.gradle文件中:
tasks.withType(org.springframework.boot.gradle.run.BootRunTask) {
systemProperty('spring.profiles.active', 'local')
}这允许gradlew bootRun从IntelliJ运行,而不需要对IntelliJ运行/调试配置进行任何更改(也不需要手动指定配置文件,也可以从命令行运行)。
https://stackoverflow.com/questions/27172863
复制相似问题