![](/img/trans.png)
[英]How do I get Netbeans 7.3.1 to see my environment variables on Mac OS X (10.8.3)?
[英]How to enable NetBeans 15 for Mac honour the system environment variables with Gradle builds
我最近开始使用 GitHub 包在内部分发我们的共享库,并回顾性地更改了 Gradle 构建配置以使用基于系统环境变量的凭据,而不是硬编码,例如
repositories {
mavenLocal() // only use when testing -SNAPSHOT locally
mavenCentral() // third-parties
maven { // our-library
name = "MyLibrary"
url = "https://maven.pkg.github.com/MyCompany/mylibrary"
credentials {
username = project.findProperty("git_username") ?: System.getenv("git_username")
password = project.findProperty("git_token") ?: System.getenv("git_token")
}
}
}
不幸的是,无论我更改了多少环境变量,无论是在~/.zshrc
.zshrc 或.zshenv
或.bash_profile
或/etc/launchd.conf
中,构建都表明凭据被禁止,或者更准确地说被解析为 nul。
每次我更改配置时,我也会运行适当的source
以确保它处于活动状态,我什至重新启动,以防万一。
环境变量将始终显示在终端中,确认环境变量始终设置正确,例如echo $git_username
或printenv
产生环境变量和预期的敏感令牌。
经过大量试验并在一位同事的帮助下,我们确定从 dock 启动 NetBeans 15 没有帮助,因此我们还向~/.zshrc
添加了以下行
alias netbeans="/Applications/NetBeans/Apache\ NetBeans\ 15.app/Contents/MacOS/netbeans &"
但是现在启动 NetBeans 我不能使用停靠图标,而是手动启动终端然后键入
netbeans
这是添加到~/.zshrc
的新行
#
# RW - For GitHub Package access
#
export git_username=NotApplicableUsesToken
export git_token=redacted1
export git_publish_username=NotApplicableUsesToken
export git_publish_token=redacted2
#
# RW - So Netbeans launches and honours the environment variables above
#
alias netbeans="/Applications/NetBeans/Apache\ NetBeans\ 15.app/Contents/MacOS/netbeans &"
我的问题是,为什么 NetBeans 从码头启动时没有发现环境变量? 如果没有此解决方法,我应该如何配置 NetBeans 以获取环境变量?
Aqua GUI 不读取任何 shell 配置文件,例如.bash_profile
、 .bashrc
、 .login
、 .profile
、 .zprofile
或.zshrc
。 您开始查看launchd
是正确的。 不幸的是/etc/launchd.conf
不再受支持,并且文件未被读取。
有两种方法可以使环境变量对应用程序可用。 第一种是在终端 session 中定义变量,然后从相同的 session 启动应用程序。 ...
将环境变量与应用程序相关联的第二种方法是在应用程序的信息属性列表文件中包含 LSEnvironment 键。 ...
编辑应用程序的 plist 似乎不是最好的主意,并且当应用程序更新时,您的更改可能会丢失。
还有第三种方法。
launchctl
具有用于管理环境变量的setenv
、 unsetenv
和getenv
子命令。 但是,环境变量不会跨launchd
实例保留。
似乎一种常见的方法是在~/Library/LaunchAgents
中创建一个代理 job.plist,它在用户登录到 macOS 时运行,它将执行launchctl setenv
以设置应该可用于从 dock 启动的应用程序的环境变量。 在“Set systemwide variable with /etc/launchd.conf does not work in 10.10”和“GUI apps 的环境变量”中有讨论,指向此方法的资源。 您可能还想查看创建启动守护进程和代理。
我自己还没有测试或尝试过这种方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.