2010-08-24 5 views
10

Dans notre projet, nous utilisons des configurations de lancement Eclipse qui sont sous contrôle de version pour être partagées avec tous les développeurs. Il est maintenant nécessaire d'inclure une archive externe dans le classpath d'un fichier de configuration de lancement. Heureusement, l'archive requise se trouve dans le référentiel Maven local de chaque développeur.Comment utiliser les variables pour la définition de chemin de classe dans les configurations de lancement Eclipse?

J'ai déjà découvert qu'il existe une variable classpath appelée M2_REPO qui fait référence au référentiel Maven local (étant valide pour tout développeur).

Mais comment utiliser cette variable dans la définition de chemin de classe suivante pour remplacer le chemin absolu?

<listAttribute key="org.eclipse.jdt.launching.CLASSPATH"> 
    ... 
    <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;runtimeClasspathEntry externalArchive=&quot;C:/Dokumente und Einstellungen/050967/.m2/repository/com/google/gwt/gwt-dev/2.0.3/gwt-dev-2.0.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;"/> 
    ... 
</listAttribute> 

Ou est-il un moyen d'inclure une variable d'environnement (par exemple pourrait aider Windows' %USERPROFILE%)?

Répondre

20

Modifiez votre configuration de lancement. Accédez à l'onglet "classpath". Focus sur les "entrées utilisateur". Cliquez sur le bouton "Avancé".

  • Pour ajouter une entrée en fonction d'une variable classpath, sélectionnez Ajouter une variable classpath, puis cliquez sur OK. Une boîte de dialogue va s'ouvrir. Concentrez-vous sur M2_REPO et cliquez sur le bouton "Étendre". Sélectionnez votre fichier JAR.
  • Pour ajouter une entrée en fonction d'une variable d'environnement système , sélectionnez Ajouter variable chaîne, et dans le editbox ci-dessous, tapez: ${env_var:your-environment-variable-name}/path-to-jar. Par exemple, si la variable d'environnement système est MYVAR et que le fichier JAR est sous subdir/myfile.jar, vous devez taper ${env_var:MYVAR}/subdir/myfile.jar.
+0

Génial. C'est tout! Merci Isaac! – thommyslaw

+0

Est-il possible de faire de même avec la variable M2_REPO? Si je fais ce que vous dites dans le premier point, il ne conserve pas l'expression de variable dans le fichier de lancement à la place, il le remplace par le chemin complet du fichier JAR qui ne fonctionne que sur mon ordinateur. Editer le fichier à la main n'est pas non plus une solution car Eclipse ajoute aussi mon chemin au premier lancement. Y a-t-il un moyen de contourner cela? Je fais une nouvelle question à partir de cela. – NagyI

+0

Voici: http: // stackoverflow.com/questions/18897954/comment-garder-m2-repo-variable-dynamique-dans-aspect-path-d'un eclipse-java-aspectj-r – NagyI

0

Vous pouvez charger cette valeur à partir de maven properties. Maven stocke le chemin du référentiel dans la propriété maven.repo.local. Maven stocke le chemin du référentiel dans la propriété maven.repo.local.

Placez ${maven.repo.local} dans votre fichier de configuration.

<listAttribute key="org.eclipse.jdt.launching.CLASSPATH"> 
    ... 
    <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;runtimeClasspathEntry externalArchive=&quot;${${maven.repo.local}}/com/google/gwt/gwt-dev/2.0.3/gwt-dev-2.0.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;"/> 
    ... 
</listAttribute> 

Ensuite, la configuration filtering dans pom.xml pour votre fichier de configuration afin ${maven.repo.local} sera remplacée par la valeur de la propriété.

+1

Malheureusement, cela ne fonctionne pas. Lorsque j'essaie d'exécuter mon fichier de lancement à partir du menu "Exécuter ..." d'Eclipse, j'obtiens un message d'erreur comme "L'archive $ {$ {maven.repo.local}}/com/google/... n'existe pas". Évidemment, la variable n'est pas résolue. D'autres idées? – thommyslaw

Questions connexes