2012-08-28 13 views
14

OSX Mountain Lionへのアップグレード以来、私はeclipseとmavenの環境変数を設定することにいくつか問題があります。OSX Mountain Lion上のアプリケーションに環境変数を設定するには?

私の目標は、Eclipseでmavenコマンドを実行することです。このコマンドは、リモートリポジトリからアーティファクト(依存関係を解決する)をダウンロードする必要があります。リポジトリはHTTPSを介して認証されます。

私はGuide to Remote repository access through authenticated HTTPSに続き、以下の行を私の.bash_profilに追加しました。私がターミナルでmavenを走らせているなら、everythingsはうまくいきます。

export MAVEN_OPTS="-Xmx512m -Djavax.net.ssl.trustStore=/Users/myUser/.knowncerts/trust.jks -Djavax.net.ssl.trustStorePassword=trustPwd" 

しかし、これは端末でのみ機能し、アプリケーションでは機能しません。以前のOSX-バージョンであなたは

~/.MacOSX/environment.plist 

にMAVEN_OPTS変数を追加する必要がありました。これは完全にOSXライオンのために働いていた(またSet environment variables on Mac OS X Lionを参照してください)。

しかし、AppleはMountain Lionでこの動作を変更しました。私は環境を読んだ.plistはもはやサポートされておらず、新しい方法は.app自体のInfo.plist(Where are system environment variables set in Mountain Lion?)を編集することです。すべての変数を含むLSEnvironment辞書を追加する必要があるようです。

<?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で定義した環境変数を使用しないと思います

この問題を解決する方法はありますか?

ありがとうございました!ここから

答えて

1

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上の手順を使用します。

+0

お返事ありがとうございました! – Loki

+0

残念ながら、これは私の問題を解決しませんでした。スクリプトを使ってEclipseを起動すると、まだ 'MAVEN_OPTS'は使用されません。しかし、たとえば別の「M2_HOME」をエクスポートすると、Eclipseはこの新しいMaven-Homeを使用します。 – Loki

1

あなたはMavenの下日食に直接ENV変数を設定することができ、「デバッグ構成」 - >「環境」タブ

19

残念ながら、これはOS X 10.8.xマウンテンでグローバル環境変数を設定するための最良の選択肢であると思われますライオン:一時的な環境変数の

、Terminal.appでこのコマンドを実行し、変数にアクセスする必要があるすべてのアプリケーションを再起動します。

launchctl setenv MYVARIABLE value 

、リブートして環境変数を永続的/etc/launchd.confを作成し、各変数のために、このような行を追加し、その後、システム全体を再起動するには:

setenv MYVARIABLE value 

これは、地球環境を設定するために私のために働きましたOS X 10.8.2でIntelliJ IDEA CE 12.0によって継承される可能性のある変数。それほどエレガントではありませんが、機能します。

また、Terminal.appで環境変数を設定してから、コマンドラインから環境変数にアクセスするAppを起動することもできます。起動したアプリケーションは、端末セッションから環境を継承します。 Terminal.appでは、環境変数を設定し、open -a "App Name"のようなコマンドを使用して別のアプリを起動:

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

これはのIntelliJ IDEAを開き、私のコードは、その環境で$MYVARIABLEにアクセスすることができます。

関連する問題