Quali sono le cause del progetto Maven importati in Eclipse per utilizzare Java 1.5, invece di Java 1.6 di default e come posso assicurare che non lo fa?
ho importato un progetto Maven ed è utilizzato Java 1.5, anche se ho 1.6 configurato come il mio Eclipse Preferences->Java->Installed JREs predefinita.
ho intenzione di cancellare il progetto e provare di nuovo ma voglio fare in modo questa volta che utilizza Java 1.6 dall'inizio per vedere se questo elimina i problemi di compilazione.
Come faccio a essere sicuro il progetto utilizza Java 1.6, quando ho importarlo?
Soluzione
Il plugin m2eclipse non usa le impostazioni predefinite di Eclipse, il plugin m2eclipse deriva le impostazioni dal POM. Quindi, se volete un progetto Maven per essere configurato per utilizzare le impostazioni di Java 1.6, quando importati in Eclipse, configurare il maven-compiler-plugin in modo appropriato, come ho già suggerito:
Se il progetto è già importata, aggiornare la configurazione del progetto ( tasto destro del mouse sul progetto quindi Maven V Aggiornamento configurazione del progetto ).
Altri suggerimenti
ho aggiunto questo al mio pom.xml sotto la descrizione del progetto e ha funzionato:
ho voluto aggiungere qualcosa alla risposta già fornita. Maven-compiler-plugin di default sarà compilare il progetto utilizzando Java 1.5, che è dove M2E ottenere informazioni del suo .
È per questo che si deve dichiarare in modo esplicito il Maven-compiler-plugin nel progetto con qualcosa altri poi 1.5. Il tuo pom.xml efficace implicitamente utilizzare il set di default nel Maven-compiler-plugin pom.xml.
Il JRE è stata probabilmente definito in configurazione di esecuzione. Seguire questa procedura in Eclipse per cambiare il JRE build.
1) Fare clic destro sul progetto e selezionare Esegui come > Run Configurazioni
2) Dalla finestra Esegui Configurazioni, selezionare la configurazione di generazione del progetto sul pannello di sinistra. Sulla destra, vedrete varie schede: Principale, JRE, Refresh, Fonte, ...
3) Fare clic sulla scheda JRE, si dovrebbe vedere qualcosa di simile
4) Per impostazione predefinita, di lavoro predefinito JRE (JRE si seleziona come predefinito in Preferenze> Java-> JRE installata ??strong>) saranno utilizzati. Se si desidera utilizzare un altro installato JRE, spuntare la Alternate JRE casella di controllo e selezionare il JRE preferita dall'elenco a discesa.
Questa è la causa principale di Java 1.5:
Si noti inoltre che allo stato attuale l'impostazione della sorgente di default è 1.5 e l'impostazione di default è 1.5, indipendentemente dal JDK si esegue Maven con. Se si desidera modificare queste impostazioni predefinite, è necessario impostare origine e di destinazione.
A seguito di plug-in è tratto da una versione POM espanso (Effective POM),
Questo può essere ottenere da questo comando dalla riga di comando C:\mvn help:effective-pom ho appena messo qui un piccolo frammento, invece di un intero pom.
Un altro posto in cui questo può andare male è nelle impostazioni di progetto specifici, in Eclipse.
proprietà del progetto: fare clic con il progetto e una delle seguenti:
Alt + Invio
Menu> Progetto> Proprietà
tasto destro del progetto> proprietà del progetto (l'ultima voce del menu)
clicca su "Java Compiler"
Deseleziona "Abilita impostazioni specifiche di progetto" (o li cambia a mano).
A causa delle esigenze del cliente che abbiamo avuto li ha permesso di mantenere i nostri progetti in 1.6. Quando è stato necessario per l'aggiornamento a 1.7, abbiamo avuto un momento difficile perché avevamo bisogno di cambiare la versione di Java in tutto il luogo:
progetto POM
Eclipse Area di lavoro di default
Impostazioni progetto specifico
l'esecuzione di macchine virtuali (1.6 è stato utilizzato per tutto)
Quindi, fare clic destro sul progetto Eclipse: Maven> Progetto Aggiornamento> Aggiornamento configurazione del progetto da pom.xml
Questo dovrebbe fare.
Un altro motivo possibile se si utilizza Tycho e Maven per fasci di build, che si dispone di ambiente di esecuzione sbagliato (Bundle-RequiredExecutionEnvironment) nel file manifesto (manifest.mf) definito. Ad esempio:
Nel mio caso tutto il resto era ok. I plugin compilatore (Maven normale e Tycho così) sono stati impostati correttamente, ancora m2 generato vecchio livello di conformità a causa del manifesto. Ho pensato che condividere l'esperienza.
ho scoperto che il mio problema era che qualcuno ha commesso il file .project e .classpath che ha avuto i riferimenti alla Java1.5 come il JRE predefinito.
Con la chiusura del progetto, rimozione dei file, e poi ri-importare come un progetto Maven, sono stato in grado di impostare correttamente il progetto per l'utilizzo di lavoro JRE o JDK rilevanti senza di essa ritornare alla 1.5. Quindi, evitare di controllare nella vostra SVN il .project e .classpath file
Spero che questo aiuta gli altri.
Se si vuole fare in modo che i progetti di nuova creazione o importato progetti in Eclipse utilizzare un'altra versione java di default di Java 1.5, è possibile modificare la configurazione nel Maven-compiler-plugin.
Vai alla cartella .m2 / repository / org / apache / Maven / plugins / Maven-compiler-plugin / 3.1
Apri Maven-compiler-plugin-3.1.jar con un programma zip.
Vai a META-INF / Maven e aprire la plugin.xml
Nelle righe seguenti: $ {} maven.compiler.source $ {maven.compiler.target}
modificare il valore predefinito valore di 1.6 o 1.8 o quello che vuoi.
Salva il file e assicurarsi che sia ripristinato al file zip.
Da ora in poi tutti i nuovi progetti Maven utilizzare la versione Java specificata.
1- Progetto> Proprietà
2 Vai a Java Build Path
3- In Librerie, selezionare JRE sistema ... e fare clic su Modifica
4- Scegli la versione adatta e validate