2015-08-04 8 views
5

kompilieren Ich benutze Maven und möchte meinen Code mit JDK 1.8 kompilieren.
So installierte ich JDK 1.8
Dann ist (diese auf Windows ist) den 'Pfad' Variable und auch 'JAVA_HOME'Maven kompiliert Code mit Java 1.7 aber ich möchte es mit 1.8

PATH = C: \ Konstruktion \ tools \ ibm_sdk80 \ bin; C: \ Bau \ tools \ apache-maven-3.2.5 \ bin;

die Java-Home:

C: \ Users \ satish.marathe> set JAVA_HOME
JAVA_HOME = C: \ Konstruktion \ tools \ ibm_sdk80

Java-Version mir geben:

C: \ Benutzer \ satish.marathe> java -version
j ava-Version "1.8.0" Java (TM) SE-Laufzeitumgebung (Build pwa6480sr1fp10-20150711_01 (SR1 FP10))
IBM J9 VM (Build 2.8, JRE 1.8.0 Windows 7 amd64-64 Komprimierte Referenzen 20150630_255633 (JIT aktiviert AOT enabled)
J9VM - R28_jvm.28_20150630_1742_B255633
JIT - tr.r14.java_20150625_95081.01
GC - R28_jvm.28_20150630_1742_B255633_CMPRSS
J9CL - 20150630_255633)
JCL - 20150711_01 auf Basis von Oracle jdk8u51-b15

Javac Version sagt mir:

C: \ Users \ satish.marathe> javac -Ausführung
javac 1.8.0 interne

Also alles 1.8
nun zu zeigen scheint, dass ich auf Java mit kompilieren mein Projekt:

mvn clean install 

Allerdings, wenn ich die kompilierten Klassen prüfe ich sehen werde, dass die große Version 51 ist - was bedeutet, es ist Java 1.7
Für diejenigen, die gerne wissen möchten, wie die Java-Version in einer Klassendatei gefunden wird! :)

javap -verbose <<your_package>>.<<your_class>> | findStr "major" 

EDIT1:
i vergessen Ausgabe von Maven -Version enthalten, so ist es hier:

C:> MVN -Ausführung Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T22: 59: 23 + 05: 30)
Maven zu Hause: C: \ Konstruktion \ Werkzeuge \ Apache-Maven-3.2.5 \ bin ..
Java-Version: 1.8.0, Anbieter: IBM Corporation
Java-Home: C: \ Konstruktion \ tools \ ibm_sdk80 \ jre
Standardsprache: de, Plattform Kodierung: Cp1252
OS Name: "windows 7", Version: "6.1", Bogen: "amd64", Familie: "dos"
C:>

OK - so meine Frage ist:
ich habe keinen Eintrag für maven_compiler_plugin in meinem pom
so dass erforderlich?
ohne dass der Eintritt - shouldnt Maven einfach meine Java-Version als 1.8 aus dem System holen und den Code kompilieren

+0

Veröffentlichen Sie Ihre pom.xml? – hd1

+1

mögliche Duplikate von [herauszufinden, welchen Compiler Maven verwendet] (http://stackoverflow.com/questions/3011977/finding-out-which-compiler-maven-uses) – dotvav

+0

ich würde es nicht als ein Duplikat betrachten - seit allem scheint zu zeigen, dass Maven sollte Java 1.8 verwenden, aber scheint 1.7 –

Antwort

4
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-compiler-plugin</artifactId> 
<configuration> 
<source>1.8</source> 
<target>1.8</target> 
</configuration> 
+0

Dank zu verwenden - ja, das würde meinen Code mit 1.8 kompilieren - aber ich versuche herauszufinden, wie und welche Java-Version von Maven standardmäßig verwendet wird (was sollte be 1.8 aber istnt) –

+0

Laut Garry-Antwort können Sie mit mvn -version sehen, welche Java-Version von Maven verwendet wird. –

2

Sie können Maven-Compiler- verwenden
Dank (was es nicht tut scheinbar zu sein scheint) Plugin
, ersetzen Sie JAVA_HOME mit Ihrem lokalen Java-SDK-Pfad.

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.3</version> 
      <configuration> 
       <encoding>UTF-8</encoding> 
       <compilerId>javac</compilerId> 
       <source>1.8</source> 
       <target>1.8</target> 
       <executable>JAVA_HOME/bin/javac</executable> 
       <showDeprecation>true</showDeprecation> 
       <showWarnings>true</showWarnings> 
       <verbose>true</verbose> 
       <fork>true</fork> 
      </configuration> 
     </plugin> 
+0

danke ich war mir nicht bewusst, dass Sie die ausführbare Datei wie in Ihrem Beispiel gezeigt zwangsweise –

5

können Sie mvn -version verwenden, um festzustellen, welche Java-Version von Maven verwendet wird.

Ihre Frage: Ich habe keinen Eintrag für maven_compiler_plugin in meinem Pom, also ist das erforderlich?

Antwort: Wenn Sie eine andere Compiler-Version mögen, dass Ihre Quellen kompilieren, dann müssen Sie angeben, dass mit der Maven-Compiler-Plugin:

<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-compiler-plugin</artifactId> 
<configuration> 
<source>1.8</source> 
<target>1.8</target> 
</configuration> 

Für weitere Informationen, wenn Sie auf der Maven-Website aussehen: maven-compiler-plugin

Standardmäßig wird das Compiler-Plugin verwendet, um die Quellen Ihres Projekts zu kompilieren. Seit 3.0 ist der Standardcompiler javax.tools.JavaCompiler (wenn Sie Java 1.6 verwenden) und wird zum Kompilieren von Java-Quellen verwendet.

+0

Dank - ich habe die mvn-Version, die 1,8 und kommt zu meiner ersten Frage enthalten - wenn ich nicht das maven_compiler_plugin enthalten, die Compiler verwendet wird von maven - der, den meine Umwelt hat? (was sollte dann JDK 1.8 richtig sein?) –

Verwandte Themen