seit dem Upgrade auf OSX Mountain Lion habe ich einige Probleme mit der Einstellung der Umgebungsvariablen für Eclipse und Maven.Wie legen Sie Umgebungsvariablen für eine Anwendung auf OSX Mountain Lion fest?
Mein Ziel ist es, einen Maven-Befehl in Eclipse auszuführen. Dieser Befehl muss Artefakte (Abhängigkeiten auflösen) von einem Remote-Repository herunterladen. Das Repository wird über HTTPS authentifiziert.
Ich habe die Guide to Remote repository access through authenticated HTTPS gefolgt und die Zeilen unten zu meinem .bash_profil hinzugefügt. Wenn ich Maven im Terminal laufe, funktioniert alles gut.
export MAVEN_OPTS="-Xmx512m -Djavax.net.ssl.trustStore=/Users/myUser/.knowncerts/trust.jks -Djavax.net.ssl.trustStorePassword=trustPwd"
Aber das funktioniert nur für das Terminal und nicht für Anwendungen. Bei früheren OSX-Versionen mussten Sie die MAVEN_OPTS Variable
~/.MacOSX/environment.plist
(siehe auch Set environment variables on Mac OS X Lion) Dieser arbeitete für OSX Lion perfekt hinzuzufügen.
Aber Apple hat dieses Verhalten auf Mountain Lion geändert. Ich habe gelesen, dass die environment.plist nicht mehr unterstützt wird und die neue Möglichkeit ist, die Info.plist der .app selbst zu bearbeiten (Where are system environment variables set in Mountain Lion?). Es scheint, dass Sie ein LSEnvironment Wörterbuch hinzufügen müssen, das alle Sie Variablen enthält.
<?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>
Wie Sie sehen können, habe ich die Info.plist meiner Eclipse.app geändert. Aber das hat nicht funktioniert. Ich starte Maven in Eclipse. Aber Maven kann die Artefakte nicht herunterladen, da das Remote-Repository nicht vertrauenswürdig ist. Ich denke, Eclipse verwendet nicht die Umgebungsvariablen, die ich in der Info.plist definiert habe.
Haben Sie Vorschläge, wie Sie dieses Problem lösen können?
Vielen Dank für Ihre Antworten!
Danke für die schnelle Antwort! – Loki
Leider hat das mein Problem nicht gelöst. Wenn ich Eclipse mit dem Skript starte, wird immer noch nicht 'MAVEN_OPTS' verwendet. Wenn ich zum Beispiel ein anderes 'M2_HOME' exportiere, verwendet Eclipse dieses neue Maven-Home. – Loki