如何在OSX Mountain Lion上为环境变量设置应用程序?

自从升级到OSX Mountain Lion后,我在为eclipse和maven设置环境变量方面遇到了一些问题。

我的目标是在Eclipse中运行maven命令。 此命令需要从远程存储库下载伪像(解析依赖项)。 存储库通过HTTPS进行身份validation。

我通过经过身份validation的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完美有效。

但是Apple已经改变了Mountain Lion的这种行为。 我已经阅读了environment.plist不再受支持,新的方法是编辑.app本身的Info.plist( Mountain Lion中设置的系统环境变量在哪里? )。 看来你必须添加一个包含所有变量的LSEnvironment字典。

     LSEnvironment  M2_HOME /usr/share/maven MAVEN_OPTS -Xmx512m -Djavax.net.ssl.trustStore=/Users/myUser/.knowncerts/trust.jks -Djavax.net.ssl.trustStorePassword=trustPwd  CFBundleExecutable eclipse CFBundleGetInfoString Eclipse 3.8 for Mac OS X, Copyright IBM Corp. and others 2002, 2011. All rights reserved. CFBundleIconFile Eclipse.icns CFBundleIdentifier org.eclipse.eclipse CFBundleInfoDictionaryVersion 6.0 CFBundleName Eclipse CFBundlePackageType APPL CFBundleShortVersionString 3.8 CFBundleSignature ???? CFBundleVersion 3.8 CFBundleDevelopmentRegion English CFBundleLocalizations  ar cs da el en es de fi fr hu it iw ja ko nl no pl pt_BR pt ru sv tr zh_HK zh_TW zh  Eclipse  -keyring ~/.eclipse_keyring -showlocation    

如您所见,我更改了Eclipse.app的Info.plist。 但这没效果。 我在Eclipse中启动maven。 但maven无法下载文物,因为远程存储库不受信任。 我认为Eclipse不使用我在Info.plist中定义的环境变量

你对如何解决这个问题有什么建议吗?

谢谢你的回答!

不幸的是,这似乎是在OS X 10.8.x Mountain Lion中设置全局环境变量的最佳选择:

对于临时环境变量,请在Terminal.app中运行此命令,然后重新启动需要访问该变量的任何应用程序:

 launchctl setenv MYVARIABLE value 

要在重新启动后使环境变量保持/etc/launchd.conf ,请创建/etc/launchd.conf并为每个变量添加这样的行,然后重新启动整个系统:

 setenv MYVARIABLE value 

这对我来说设置了一个全局环境变量,可以由OS X 10.8.2上的IntelliJ IDEA CE 12.0inheritance。 不是很优雅,但它的工作原理。

或者,您可以在Terminal.app中设置环境变量,然后从命令行启动要从中访问环境变量的App。 启动的应用程序将从您的终端会话inheritance环境。 在Terminal.app中,设置环境变量并使用open -a "App Name"等命令启动另一个应用open -a "App Name"

 export MYVARIABLE=value open -a "IntelliJ IDEA 12 CE" 

这将打开IntelliJ IDEA,我的代码可以在其环境中访问$MYVARIABLE

从这里: https : //stackoverflow.com/a/10374886/325742

 #!/bin/sh # export MAVEN_OPTS=#MAVEN_OPTS_HERE# LAUNCHER_JAR=/Applications/eclipse/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar java \ -showversion \ -XX:MaxPermSize=256m \ -Xms1024m \ -Xmx1024m \ -Xdock:icon=/Applications/eclipse/Eclipse.app/Contents/Resources/Eclipse.icns \ -XstartOnFirstThread \ -Dorg.eclipse.swt.internal.carbon.smallFonts \ -Dosgi.requiredJavaVersion=1.5 \ -jar $LAUNCHER_JAR 

然后,使用http://mathiasbynens.be/notes/shell-script-mac-apps上的步骤将上述脚本转换为可以保留在扩展坞上的应用程序。

您可以在maven“Debug Configurations” – >“Environment”选项卡下直接在eclipse中设置env变量

终端窗口上的命令步骤:

  1. vi~ / .bash_profile
  2. 按i(使vi编辑器进入编辑模式)
  3. 在vi编辑器窗口中输入环境变量
    • 例如export JAVA_HOME = / Users / Shared / Jenkins / Home / tools / hudson.model.JDK / java8
  4. esc键后跟:wq
  5. source~ / .bash_profile