繁体   English   中英

如何为 Mac 启用 NetBeans 15 以 Gradle 版本支持系统环境变量

[英]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_usernameprintenv产生环境变量和预期的敏感令牌。

经过大量试验并在一位同事的帮助下,我们确定从 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不再受支持,并且文件未被读取。

Apple 在环境变量部分的运行时配置指南指出:

有两种方法可以使环境变量对应用程序可用。 第一种是在终端 session 中定义变量,然后从相同的 session 启动应用程序。 ...

将环境变量与应用程序相关联的第二种方法是在应用程序的信息属性列表文件中包含 LSEnvironment 键。 ...

编辑应用程序的 plist 似乎不是最好的主意,并且当应用程序更新时,您的更改可能会丢失。

还有第三种方法。

launchctl具有用于管理环境变量的setenvunsetenvgetenv子命令。 但是,环境变量不会跨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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM