如何设置在Intellij IDEA bu​​ild.gradle中读取的环境变量?

时间:2017-07-13 14:04:15

标签: intellij-idea build.gradle

在我的Intellij IDEA(v2017.1.5,当前最新的)模块build.gradle中,当我根据该环境变量定义构建时变量时,我需要读取OS(Linux)环境变量。除了将父shell中的环境变量设置为Intellij IDEA(例如,设置env var的包装shell脚本然后调用idea.sh,或者只是在我的登录shell的.bashrc中),我如何设置env var scoped为只是单个模块,还是仅仅是单个IDEA项目?理想情况下,如果我从IDEA项目打开终端,我将能够回显$ PROJECT_VAR作为值。

在项目的运行/调试配置中设置变量值> Groovy>构建>环境变量或设置>外观&行为> Path Variables没有使build.gradle(或终端shell)可以访问这些值。

1 个答案:

答案 0 :(得分:-1)

第一个答案是使用Run> '编辑配置' 。有一个与Java-9和gradle相关的Jetbrains错误。至少在MacOS环境中,不会选择在构建属性对话框中设置的变量。短期解决方案是使用java-8进行gradle。 IDEA-188768

在Linux上,Intellij将获取.profile变量。个人资料需要来源'在运行idea.sh之前。

除了我已经看到的读取环境变量或运行属性的bug之外,它还可以在gradle和java中使用。可以用

进行测试
 (System.properties).each {
    println "Prop ${it}"
}

(environment).each {
    println "Env ${it}"
}

或阅读并设置默认

systemProperty "prop, System.properties['prop'] ?: "mmm"

System.properties['spring.config.location'] ?: "config/local/"
classpath += files('config/local')

在java中检查

System.getenv(PGPCommandLineProcessor.SIGNING_KEY_ID);