首页 文章

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

提问于
浏览
6

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

PATH = C:\ construction \ tools \ ibm_sdk80 \ bin; C:\ construction \ tools \ apache-maven-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(build 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:> 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并编译代码(它似乎没有显然做)
谢谢

3 回答

  • 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源代码 .

  • 4
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
     <source>1.8</source>
     <target>1.8</target>
    </configuration>
    
  • 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>
    

相关问题