我正在使用maven,并希望使用JDK 1.8编译我的代码
所以我安装了JDK 1.8
然后(这是在Windows上)设置'path'变量和'JAVA_HOME'
PATH = C:\施工\工具\ ibm_sdk80 \ BIN; C:\施工\工具\ Apache的行家-3.2.5 \ BIN;
java home:
C:\ Users \ satish.marathe>设置JAVA_HOME
JAVA_HOME = C:\施工\工具\ ibm_sdk80
java版给我:
C:\ Users \ satish.marathe> java -version
java版“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
然而,当我检查已编译的类时,我发现主要版本是51 - 这意味着它是Java 1.7 对于那些想知道如何在类文件中找到java版本的人! :)
javap -verbose <<your_package>>.<<your_class>> | findStr "major"
EDIT1:
我忘了包含maven -version的输出,所以这里是:
C:&gt; 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:&GT;
好的 - 所以我的问题是:
我的pom中没有maven_compiler_plugin的任何条目
所需要的是什么?
没有那个条目 - 不应该maven只是从系统中选择我的java版本为1.8并编译代码(它似乎没有显然做)
感谢
答案 0 :(得分: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>
有关详细信息,请查看maven网站:maven-compiler-plugin
默认编译器插件用于编译你的源代码 项目。从3.0开始,默认编译器是javax.tools.JavaCompiler (如果您使用的是java 1.6)并且用于编译Java源代码。
答案 1 :(得分:4)
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
答案 2 :(得分:2)
您可以使用 maven-compiler-plugin ,将JAVA_HOME替换为您当地的java sdk路径。
<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>