首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在IntelliJ中为分级任务设置环境vars

如何在IntelliJ中为分级任务设置环境vars
EN

Stack Overflow用户
提问于 2014-11-27 14:24:04
回答 3查看 24.2K关注 0票数 34

当在命令行上运行时,将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文件,因此会隐藏错误。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-05 23:44:05

使System.propertiesbootRun (或其他)任务中可用。

代码语言:javascript
运行
复制
bootRun.systemProperties = System.properties

这样,我们就可以在IntelliJ VM选项(如-Dspring.profiles.active=dev )中设置。

票数 10
EN

Stack Overflow用户

发布于 2015-07-17 15:27:36

下面是用Gradle / IntelliJ设置Spring环境变量/设置的解决方案

首先,定义一个基本属性文件,然后根据您的环境定义一个文件,例如:

代码语言:javascript
运行
复制
@Configuration
@PropertySources(value = {@PropertySource("classpath:default.properties"),@PropertySource("classpath:${env}.properties")})

在上面的例子中,请仔细注意@PropertySource("classpath:${env}.properties")。这是一个正在执行的环境变量。

接下来,将VM参数添加到IntelliJ (通过Gradle任务运行配置),或者作为参数添加到gradle命令行。

最后,在gradle任务中复制属性,就像@cfrick提到的那样,@mdjnewman正确地显示了:

代码语言:javascript
运行
复制
tasks.withType(org.springframework.boot.gradle.run.BootRunTask) {
    bootRun.systemProperties = System.properties
}
票数 6
EN

Stack Overflow用户

发布于 2015-01-05 23:31:00

我已经成功地将以下内容添加到我的build.gradle文件中:

代码语言:javascript
运行
复制
tasks.withType(org.springframework.boot.gradle.run.BootRunTask) {
    systemProperty('spring.profiles.active', 'local')
}

这允许gradlew bootRun从IntelliJ运行,而不需要对IntelliJ运行/调试配置进行任何更改(也不需要手动指定配置文件,也可以从命令行运行)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27172863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档