Comment définir des variables d'environnement sur une application sur OSX Mountain Lion?
depuis la mise à jour vers mac OS x Mountain Lion, j'ai quelques problèmes avec la configuration des variables d'environnement eclipse et maven.
Mon but est d'exécuter une commande maven dans Eclipse. Cette commande doit télécharger les artefacts (résoudre des dépendances) à partir d'un dépôt distant. Le référentiel est authentifié via HTTPS.
J'ai suivi les Guide de dépôt Distant accès authentifié par HTTPS et ajouté les lignes ci-dessous à mon .bash_profil . Si je suis l'exécution de maven dans le terminal, tout fonctionne très bien.
export MAVEN_OPTS="-Xmx512m -Djavax.net.ssl.trustStore=/Users/myUser/.knowncerts/trust.jks -Djavax.net.ssl.trustStorePassword=trustPwd"
Mais cela fonctionne seulement pour le terminal et non pas pour les applications. Sur les précédentes OSX-Versions que vous deviez ajouter le MAVEN_OPTS variable
~/.MacOSX/environment.plist
(voir aussi Définir des variables d'environnement sur Mac OS X Lion) il a travaillé pour de OSX Lion parfaitement.
Mais Apple a changé de ce comportement sur la Montagne du Lion. J'ai lu l'environnement.plist n'est plus supporté et de la nouvelle façon de modifier les informations.plist de l' .l'application elle-même (Où sont les variables d'environnement système situé dans la Montagne du Lion?). Il semble que vous avez pour ajouter un LSEnvironment dictionnaire contenant toutes les 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>
Comme vous pouvez le voir j'ai changé l'Info.plist de mon Eclipse.app. Mais cela ne fonctionne pas. Je commence maven dans Eclipse. Mais maven n'est pas en mesure de télécharger les artefacts, parce que le dépôt distant n'est pas digne de confiance. Je pense que Eclipse ne pas utiliser les variables d'environnement que j'ai définie dans l'Info.plist
Avez-vous des suggestions pour résoudre ce problème?
Merci pour vos réponses!
source d'informationauteur Loki
Vous devez vous connecter pour publier un commentaire.
Malheureusement, cela semble être la meilleure option pour définir une variable d'environnement globale dans OS X 10.8.x Mountain Lion:
Temporaire dans les variables d'environnement, exécutez cette commande dans le Terminal.app, et de redémarrer toutes les applications qui ont besoin d'accéder à la variable:
De faire une variable d'environnement persistant entre les redémarrages, créer
/etc/launchd.conf
et ajoutez une ligne comme ceci pour chaque variable, puis redémarrez votre système:Cela a fonctionné pour moi pour définir une variable d'environnement qui peut être hérité par IntelliJ IDEA CE 12.0 sur OS X 10.8.2. Pas très élégant, mais il fonctionne.
Alternativement, vous pouvez définir la variable d'environnement dans le Terminal.application, puis lancez l'Application à partir de laquelle vous souhaitez accéder à la variable d'environnement à partir de la ligne de commande. Le lancement de l'app va hériter de l'environnement de votre session de terminal. Dans Le Terminal.application, définissez la variable d'environnement et de lancer une autre application avec une commande comme
open -a "App Name"
:Cela ouvre IntelliJ IDEA, et mon code peut accéder à
$MYVARIABLE
dans son environnement.À partir d'ici : https://stackoverflow.com/a/10374886/325742
Ensuite, utilisez les étapes sur http://mathiasbynens.be/notes/shell-script-mac-appspour activer le script ci-dessus dans une application qui peut être gardé sur le quai.
Vous pouvez définir env variable directement dans eclipse sous maven "Debug Configurations" -> "Environnement" de l'onglet
Étapes de commandes sur la fenêtre du terminal: