如何在OSX Mountain Lion上为应用程序设置环境变量?
自从升级到OSX Mountain Lion以来,我在为eclipse和maven设置环境变量时遇到了一些问题。
我的目标是在 Eclipse 中运行一个 maven 命令。此命令需要从远程存储库下载项目(解析依赖项)。存储库通过 HTTPS 进行身份验证。
我遵循了通过经过身份验证的HTTPS进行远程存储库访问指南,并将以下行添加到我的.bash_profil。如果我在终端中运行maven,一切都很好。
export MAVEN_OPTS="-Xmx512m -Djavax.net.ssl.trustStore=/Users/myUser/.knowncerts/trust.jks -Djavax.net.ssl.trustStorePassword=trustPwd"
但这仅适用于终端,而不适用于应用程序。在以前的OSX版本中,您必须将MAVEN_OPTS变量添加到
~/.MacOSX/environment.plist
(另请参阅在 Mac OS X Lion 上设置环境变量)这对OSX Lion来说非常有效。
但苹果已经改变了对Mountain Lion的这种行为。我已经阅读了环境.plist不再受支持,新方法是编辑.app本身的Info.plist(在Mountain Lion中设置的系统环境变量在哪里?)。看来你必须添加一个包含所有变量的LS环境字典。
<?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>LSEnvironment</key>
<dict>
<key>M2_HOME</key>
<string>/usr/share/maven</string>
<key>MAVEN_OPTS</key>
<string>-Xmx512m -Djavax.net.ssl.trustStore=/Users/myUser/.knowncerts/trust.jks -Djavax.net.ssl.trustStorePassword=trustPwd</string>
</dict>
<key>CFBundleExecutable</key>
<string>eclipse</string>
<key>CFBundleGetInfoString</key>
<string>Eclipse 3.8 for Mac OS X, Copyright IBM Corp. and others 2002, 2011. All rights reserved.</string>
<key>CFBundleIconFile</key>
<string>Eclipse.icns</string>
<key>CFBundleIdentifier</key>
<string>org.eclipse.eclipse</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Eclipse</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>3.8</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>3.8</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleLocalizations</key>
<array>
<string>ar</string>
<string>cs</string>
<string>da</string>
<string>el</string>
<string>en</string>
<string>es</string>
<string>de</string>
<string>fi</string>
<string>fr</string>
<string>hu</string>
<string>it</string>
<string>iw</string>
<string>ja</string>
<string>ko</string>
<string>nl</string>
<string>no</string>
<string>pl</string>
<string>pt_BR</string>
<string>pt</string>
<string>ru</string>
<string>sv</string>
<string>tr</string>
<string>zh_HK</string>
<string>zh_TW</string>
<string>zh</string>
</array>
<key>Eclipse</key>
<array>
<string>-keyring</string>
<string>~/.eclipse_keyring</string>
<string>-showlocation</string>
</array>
</dict>
</plist>
如您所见,我更改了 Eclipse.app 的Info.plist。但这并没有奏效。我开始在Eclipse中进行maven。但是 maven 无法下载工件,因为远程存储库不受信任。我认为Eclipse没有使用我在Info.plist中定义的环境变量。
你有什么建议如何解决这个问题吗?
感谢您的回答!