2014-10-11 7 views
7

Ich bin neu zu Maven, und ich finde, dass, obwohl ich die Facette des JDK des Projekts auf 1.8 ändere, jedes Mal, wenn ich "update Maven", wird es zurück zu jdk 1.6.Wie man Maven JDK1.8 anstelle von JDK1.6 verwendet

Warum ist das?

Ich installierte jdk 1.8 in meinen Fenstern, und ich benutze Eclipse.

Ich lese Specify JDK for Maven to use und fügen Sie Folgendes hinzu, aber es funktioniert nicht.

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

Antwort

7

Die Version des JDK, die in der wird verwenden Maven eingestellt maven-compiler-plugin wie folgt:

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

Weitere Informationen finden Sie unter Setting the -source and -target of the Java Compiler.

+0

Also, was ist mit Maven-Enforcer-Plugin, was ist das zu tun und warum löst es den Thread Angeben JDK für Maven zu verwenden – Jaskey

+0

Und ich versuchte, eine Warnung: Override Managed Version 3.1 für Maven- Compiler-Plugin, warum gibt es eine Warnung für die Versionen – Jaskey

+0

Ich werde das mit Wildfly versuchen :) thk :) –

0

vielleicht zu spät, aber es funktioniert für mich:

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

Ihre Frage viel helfen mir sowieso :) Danke :)

0

In einem Kommentar Sie gefragt: So

Was ist mit Maven-Enforcer-Plugin, was ist das zu tun?

Nach diesen documentation für das Plugin.

„Das Ziel einer Lebenszyklusphase gebunden sein soll und in Ihrem pom.xml konfigurierte der Enforcer führen die konfigurierten Regeln zu überprüfen bestimmte Einschränkungen. "

Mit anderen Worten, überprüft es, dass bestimmte Einschränkungen erfüllt sind. Es ist nicht verursacht sie zufrieden zu sein.

In Ihrem Beispiel sollte der Effekt des Plugins sein, damit der Build fehlschlägt, wenn die Java-Version nicht Java 1.8 ist.

... und warum löst es den Thread "Angeben JDK für Maven zu verwenden"?

Die answer Sie beziehen sich dies sagt.

„Und es schadet nie Maven-erzwingen-Plugin ... An der rechten jdk verwendet wird sicher Dies ist ein gutes Übung für deinen Pom."

Wie Sie sehen können, es gibt nicht an, dass Maven-erzwingen-Plugin‚löst‘das Problem. Es bietet tatsächlich einen Weg, um sicherzustellen, dass das Problem gelöst ist ... und nicht die Build

Verwandte Themen