maven正在用java 1.7编译代码,但我想用1.8编译它

sat*_*the 6 java maven

我正在使用maven,并希望使用JDK 1.8编译我的代码.
所以我安装了JDK 1.8
然后(这是在windows上)设置'path'变量和'JAVA_HOME'

PATH = C:\建筑\工具\ ibm_sdk80\BIN; C:\建筑\工具\ Apache的行家-3.2.5\BIN;

java主页:

C:\ Users\satish.marathe>设置JAVA_HOME
JAVA_HOME = C:\ construction\tools\ibm_sdk80

java版给我:

C:\ Users\satish.marathe> java -version
java version"1.8.0"
Java(TM)SE运行时环境(构建pwa6480sr1fp10-20150711_01(SR1 FP10))
IBM J9 VM(版本2.8,JRE 1.8.0 Windows 7 amd64 -64压缩参考20150630_255633(JIT使能,AOT使能)
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基于Oracle jdk8u51-b15

javac版本告诉我:

C:\ Users\satish.marathe> javac -version
javac 1.8.0-internal

所以一切似乎都指向java 1.8
现在我使用以下方法编译我的项目:

mvn clean install  
Run Code Online (Sandbox Code Playgroud)

但是,当我检查已编译的类时,我发现主要版本是51 - 这意味着它是Java 1.7
对于那些想知道如何在类文件中找到java版本的人!:)

javap -verbose <<your_package>>.<<your_class>> | findStr "major"  
Run Code Online (Sandbox Code Playgroud)

编辑1:
我忘了包含maven -version的输出所以这里是:

C:> mvn -version Apache Maven 3.2.5(12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T22:59:23 + 05:30)
Maven home:C:\ construction\tools\apache-maven-3.2.5\bin ..
Java版本:1.8.0,供应商:IBM Corporation
Java home:C:\ construction\tools\ibm_sdk80\jre
默认语言环境:en_US,平台编码:Cp1252
操作系统名称:"windows 7",版本:"6.1",arch:"amd64 ",家庭:"dos"
C:>

好的 - 所以我的问题是:
我的pom中没有maven_compiler_plugin的任何条目,
那么这是必需的吗?
没有那个条目 - 不应该maven只是从系统中选择我的java版本为1.8并编译代码(它似乎没有显然做)
谢谢

Gar*_*rry 6

您可以使用mvn -version以查看Maven使用的Java版本.

你的问题:我的pom中没有maven_compiler_plugin的任何条目,所以这是必需的吗?

答:如果您需要不同的编译器版本来编译源代码,那么您需要使用maven-compiler-plugin指定:

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
 <source>1.8</source>
 <target>1.8</target>
</configuration>
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请查看maven网站:maven-compiler-plugin

默认情况下,Compiler Plugin用于编译项目的源代码.从3.0开始,默认编译器是javax.tools.JavaCompiler(如果您使用的是java 1.6)并且用于编译Java源代码.


San*_*waj 4

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
 <source>1.8</source>
 <target>1.8</target>
</configuration>
Run Code Online (Sandbox Code Playgroud)