desde la actualización a OSX Mountain Lion Tengo algunos problemas para configurar las variables de entorno para eclipse y maven.¿Cómo establecer variables de entorno para una aplicación en OSX Mountain Lion?
Mi objetivo es ejecutar un comando maven en Eclipse. Este comando necesita descargar artefactos (resolver dependencias) desde un repositorio remoto. El repositorio se autentica a través de HTTPS.
He seguido el Guide to Remote repository access through authenticated HTTPS y he agregado las líneas a mi .bash_profil. Si estoy ejecutando maven en la terminal, todo funciona bien.
export MAVEN_OPTS="-Xmx512m -Djavax.net.ssl.trustStore=/Users/myUser/.knowncerts/trust.jks -Djavax.net.ssl.trustStorePassword=trustPwd"
Pero esto solo funciona para el terminal y no para aplicaciones. En anteriores versiones de OSX-había que añadir la variable MAVEN_OPTS a
~/.MacOSX/environment.plist
(véase también Set environment variables on Mac OS X Lion) Esto funcionó para OSX Lion perfectamente.
Pero Apple ha cambiado este comportamiento en Mountain Lion. He leído el environment.plist ya no es compatible y la nueva forma es editar el Info.plist del .app mismo (Where are system environment variables set in Mountain Lion?). Parece que tiene que agregar un diccionario LSEnvironment que contiene todas las variables.
<?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>
Como puede ver he cambiado Info.plist de mi Eclipse.app. Pero esto no funciono. Comienzo maven dentro de Eclipse. Pero maven no puede descargar los artefactos, porque el repositorio remoto no es de confianza. Creo que Eclipse no usa las variables de entorno que definí en Info.plist
¿Tiene alguna sugerencia sobre cómo solucionar este problema?
Gracias por sus respuestas!
¡Gracias por la respuesta rápida! – Loki
Desafortunadamente esto no solucionó mi problema. Cuando inicio Eclipse con el script, todavía no utiliza el 'MAVEN_OPTS'. Pero si exporto, por ejemplo, un 'M2_HOME' diferente, Eclipse usa este nuevo Maven-Home. – Loki