2011-01-21 4 views
8

Utilizzo Eclipse come IDE e Maven al di fuori di esso per mantenere tutte le dipendenze aggiornate e aggiornare il progetto Eclipse in quanto tale. In Eclipse, in genere, specifica la libreria di sistema JRE come ambiente di esecuzione per qualsiasi progetto Java, in genere "JavaSE-1.6".Eclipse + Maven: force Execution Environment "JavaSE-1.6" anziché JDK fisso

Nel pom.xml io uso le seguenti righe:

 <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-eclipse-plugin</artifactId> 
      <version>2.8</version> 
      <configuration> 
       <projectNameTemplate>[groupId].[artifactId]</projectNameTemplate> 
       <downloadJavadocs>true</downloadJavadocs> 
       <wtpversion>2.0</wtpversion> 
      </configuration> 
     </plugin> 

Questo sembra lasciare Maven scegliere un JDK corrispondenti 1.6. Assegna le sue librerie di sistema al classpath del progetto. Tuttavia, utilizza direttamente jdk1.6.20 piuttosto che JavaSE-1.6.

C'è un modo per far utilizzare Maven JavaSE-1.6?


EDIT: Ecco il file batch che uso per eseguire Maven:

SET JAVA_HOME=C:\Programme\java\jdk1.6.0_20 
SET MAVEN_HOME=C:\Programme\apache-maven-2.2.1 
SET MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=128m 
SET PATH=%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%PATH% 

SET EXTRA_MVN_OPTS=-Dmaven.test.skip=true 

CD /D "%~dp0" 
cmd /c mvn %EXTRA_MVN_OPTS% eclipse:clean eclipse:eclipse 
cmd /c mvn %EXTRA_MVN_OPTS% clean install 
+0

ho aggiunto il file batch per Maven e le pom.xml-linee per la 'maven-eclipse-Plugin' – sjngm

risposta

10

È possibile farlo impostando un contenitore del percorso di classe.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-eclipse-plugin</artifactId> 
    <version>2.8</version> 
    <configuration> 
     <classpathContainers> 
      <classpathContainer> 
    org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6 
      </classpathContainer> 
     </classpathContainers> 
    </configuration> 
</plugin> 

Riferimento:

+0

Sembra promettente! Ti farò sapere se ha funzionato. – sjngm

+1

Lo so, una mia ex azienda cliente l'ha usata per anni. Tuttavia, il problema è che la proprietà è contrassegnata come interna e quindi soggetta a modifiche –

+0

Sì, funziona. Se smette di funzionare aprirò un'altra domanda;) _Sospida per il ritardo, ma ero malato_ – sjngm

2

Andate in Finestra> Preferenze> JRE Java> Installati> ambienti di esecuzione

Select JavaSE-1.6, fai clic sulla casella di controllo a destra che dovrebbe indicare "corrispondenza perfetta"

quindi utilizzare "aggiorna configurazione progetto" dal menu di esperti.

+0

E 'già lo fa. Oltre a questo, non sono autorizzato a utilizzare il menu Maven in quanto occasionalmente distrugge le impostazioni del progetto. – sjngm

+0

Quale versione dell'estensione di Maven stai usando? Le versioni più recenti sono state MOLTO buone a riguardo. Se stai commettendo i file .project e .classpath sul controllo della versione, probabilmente non è una buona idea dato che eclipse + maven può aggiornare/riconfigurare quelli basati su dipendenze e plugin. –

+0

Ho appena visto la tua modifica e vorrei dare un'occhiata alla raccomandazione di @Sean Patric Floyd. –

0

Dal momento che si sta utilizzando e maveneclipse, forse si dovrebbe usare M2Eclipse plugin. Il progetto Maven (costruito da Maven impostando JAVA_HOME=C:\Program Files\Java\jdk1.6.0_23) importati in Eclipse, si presenta con JRE System Library come JavaSE-1.6

+0

Sarebbe bello sapere perché generalmente si preferisce M2Eclipse, oltre a "funziona per me" per questa domanda. –