在我的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)可以访问这些值。
答案 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);