dop*_*umi 7 intellij-idea gradle intellij-14
我在gradle中编写了一个抓取环境变量的任务.
task run(type:Exec) {
def SYS_ENV = System.getenv("SYSTEM_ENV")
// do something with SYS_ENV
}
Run Code Online (Sandbox Code Playgroud)
如果我运行这个任务./gradlew :taskName一切都很好,但如果我从IntelliJ IDEA运行相同的任务,(与
按钮,或从gradle面板)env变量出来null.
我尝试重启IntelliJ,我也尝试了Invalidate Caches/Restart选项,但没有任何改变.
是不是IntelliJ IDEA应该运行Gradle脚本,就像我从命令运行它一样?如何从Grade中获取env变量,以便在运行IntelliJ时脚本不会失败?
编辑:我做了一堆试验,我可以做lanchctl setenv MY_PATH MY_VALUE 工作,但它不是永久性的,并且添加setenv MY_PATH MY_VALUE到/etc/lanchd.conf 不会这样做.
小智 0
这是一个相对较旧的问题,但以下内容对我在 Yosemite (10.10) 上有效,因此在这里回答以防其他人遇到问题。
launchd.conf对Yosemite的支持已被删除。LaunchAgents 可用于 OSX 中启动每个用户的进程。您可以使用这些来重新运行launchctl问题中的步骤,有效地保留环境变量
创建一个用户启动代理来设置变量(编辑环境变量并在终端窗口中运行以下命令)
cat << EOF > ~/Library/LaunchAgents/user.environment.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>user.environment</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>launchctl setenv MYPATH MY_VALUE</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
Run Code Online (Sandbox Code Playgroud)重新启动你的Mac
参考:
| 归档时间: |
|
| 查看次数: |
2405 次 |
| 最近记录: |