2010-08-24 6 views
10

Nel nostro progetto utilizziamo configurazioni di lancio Eclipse che sono sotto controllo di versione da condividere con tutti gli sviluppatori. Ora è necessario includere un archivio esterno nel classpath del file di configurazione di avvio. Fortunatamente l'archivio richiesto si trova nel repository Maven locale di ogni sviluppatore.Come utilizzare le variabili per la definizione del percorso di classe nelle configurazioni di avvio di Eclipse?

Ho già scoperto che esiste una variabile classpath denominata M2_REPO che fa riferimento al repository Maven locale (valido per qualsiasi sviluppatore).

Ma come utilizzare questa variabile nella seguente definizione del percorso di classe per sostituire il percorso assoluto?

<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> 

O c'è un modo per includere una variabile d'ambiente (ad esempio Windows' %USERPROFILE% potrebbe aiutare)?

risposta

20

Modifica la configurazione di avvio. Passare alla scheda "Classpath". Concentrarsi su "Voci utente". Fare clic sul pulsante "Avanzate".

  • per aggiungere una voce in base a una variabile classpath, selezionare Aggiungi classpath variabile e fare clic su OK. Si aprirà una finestra di dialogo. Concentrarsi su M2_REPO e fare clic sul pulsante "Estendi". Seleziona il tuo file JAR.
  • per aggiungere una voce in base a un ambiente di sistema variabile, selezionare Aggiungi variabile stringa, e nella casella di modifica di seguito, digitare: ${env_var:your-environment-variable-name}/path-to-jar. Ad esempio, se la variabile di ambiente del sistema è MYVAR e il file JAR è inferiore a subdir/myfile.jar, è necessario digitare ${env_var:MYVAR}/subdir/myfile.jar.
+0

Grande. Questo è tutto! Grazie Isacco! – thommyslaw

+0

È possibile fare lo stesso con la variabile M2_REPO? Se faccio ciò che dici nel primo punto, non mantiene l'espressione della variabile nel file di avvio ma lo sostituisce con il percorso completo del JAR che funziona solo sul mio computer. La modifica manuale del file non è una soluzione perché Eclipse aggiunge il mio percorso anche al primo avvio. C'è un modo per aggirarlo? Faccio una nuova domanda da questo. – NagyI

+0

Eccolo: http: // StackOverflow.it/questions/18897954/how-to-keep-m2-repo-variable-dynamic-in-aspect-path-of-an-eclipse-java-aspectj-r – NagyI

0

È possibile caricare tale valore da maven properties.

Maven memorizza il percorso di repository nella proprietà maven.repo.local.

Inserire ${maven.repo.local} nel file di configurazione.

<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> 

Poi configurazione filtering in pom.xml per il file di configurazione in modo ${maven.repo.local} sarà sostituito con il valore della proprietà.

+1

Sfortunatamente non funziona. Quando provo a eseguire il mio file di avvio dal menu "Esegui ..." di Eclipse, ricevo un messaggio di errore come "L'archivio $ {$ {maven.repo.local}}/com/google/... non esiste". Ovviamente la variabile non è stata risolta. Altre idee? – thommyslaw