20

OSX Mountain Lion へのアップグレード以来、Eclipse と Maven の環境変数の設定に問題があります。

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

Guide to Remote repository access through authenticated 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辞書を追加する必要があるようです。

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

この問題を解決する方法について何か提案はありますか?

回答ありがとうございます。

4

4 に答える 4

28

残念ながら、これは OS X 10.8.x Mountain Lion でグローバル環境変数を設定するための最良のオプションのようです:

一時的な環境変数の場合、Terminal.app で次のコマンドを実行し、変数にアクセスする必要があるアプリを再起動します。

launchctl setenv MYVARIABLE value

再起動後も環境変数を永続化するには、変数ごとに次のような行を作成/etc/launchd.confして追加し、システム全体を再起動します。

setenv MYVARIABLE value

これは、OS X 10.8.2 上の IntelliJ IDEA CE 12.0 に継承できるグローバル環境変数を設定するのに役立ちました。あまりエレガントではありませんが、機能します。

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

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

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

于 2013-01-11T19:31:08.083 に答える
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の手順を使用して、上記のスクリプトをドックに保持できるアプリケーションに変換します。

于 2012-08-28T19:48:07.467 に答える
0

mavenの「デバッグ構成」->「環境」タブの下で、Eclipseでenv変数を直接設定できます

于 2012-12-28T14:15:23.707 に答える