2014-10-11 20 views
7

Sono nuovo per Maven, e trovo che sebbene io modifichi l'aspetto del jdk del progetto a 1.8, ogni volta che aggiorno "Maven", sarà tornare a jdk 1.6.Come utilizzare Maven JDK1.8 invece di JDK1.6

Perché è quello?

Ho installato jdk 1.8 nelle finestre e sto usando eclipse.

Ho letto Specify JDK for Maven to use e aggiungo quanto segue ma non funziona.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-enforcer-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>enforce-versions</id> 
     <goals> 
     <goal>enforce</goal> 
     </goals> 
     <configuration> 
     <rules> 
      <requireJavaVersion> 
      <version>1.8</version> 
      </requireJavaVersion> 
     </rules> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

risposta

7

La versione del JDK che Maven utilizzerà sorge nel maven-compiler-plugin così:

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.1</version> 
    <configuration> 
     <source>1.8</source> <!-- use java 8 --> 
     <target>1.8</target> 
    </configuration> 
    </plugin> 

Vedere Setting the -source and -target of the Java Compiler per ulteriori informazioni.

+0

Che dire di maven-enforcer-plugin, che cosa è questo da fare e perché risolve il thread Specificare JDK per Maven da utilizzare – Jaskey

+0

E ho provato, una avvertenza: Sovrascrivere la versione gestita 3.1 per maven- compiler-plugin, perché c'è un avviso per le versioni. – Jaskey

+0

proverò con wildfly :) thk :) –

0

forse troppo tardi, ma funziona per me:

<!-- we want JDK 1.8 source and binary compatiblility --> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
      <source>1.8</source> 
      <target>1.8</target> 
     </configuration> 
    </plugin> 
    <!-- ... --> 
    <!-- we want sources to be processed by a specific 1.8 javac --> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.1</version> 
     <configuration> 
      <verbose>true</verbose> 
      <fork>true</fork> 
      <executable>${JAVA_1_8_HOME}/bin/javac</executable> 
     </configuration> 
    </plugin> 

La tua domanda mi aiutano molto in ogni caso :) Grazie :)

0

In un commento è chiesto:

Così che dire di maven-enforcer-plugin, che cosa è questo da fare?

In base a tale documentation per il plugin:.

"Questo obiettivo è destinata ad essere legato a una fase del ciclo di vita e configurato nel vostro pom.xml Gli esecutori eseguire le regole configurate per verificare la presenza di alcuni vincoli. "

In altre parole, si verifica che alcuni vincoli sono stati soddisfatti . Non è causa per essere soddisfatti.

Nel tuo esempio, l'effetto del plug-in deve essere per causare il fallimento della compilazione se la versione Java non è Java 1.8.

... e perché risolve il thread "Specifica JDK per Maven da utilizzare"?

Il answer si fa riferimento a questo dice:.

"E non nuoce ... aggiungi Maven-rispettare-plugin per assicurarsi che il JDK destra viene utilizzato Questo è un buon pratica per il tuo pom."

Come si può vedere, non è così affermare che Maven-rispettare-plugin 'risolve' il problema. E 'in realtà fornendo un modo per garantire che il problema è stato risolto ... e falliscono la compilazione

Problemi correlati