欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

解决maven项目在update maven之后jre被改成1.5的问题

程序员文章站 2022-02-07 12:25:02
...

一、maven update jdk变回1.5

在Eclipse中新建了一个Maven工程、然后更改JDK版本为1.7或者以上、结果每次使用Maven > Update project的时候JDK版本都恢复成1.5、很是奇怪、然后写的@Override就会报错


二、jdk1.5原因分析

后来查了一下原因、Maven官方文档有如下描述:

译器插件用来编译项目的源文件从3.0版本开始、用来编译Java源文件的默认编译器是javax.tools.JavaCompiler (如果你是用的是java 1.6)、如果你想强制性的让插件使用javac、你必须配置插件选项 forceJavacCompilerUse


同时需要注意的是目前source选项和target 选项的默认设置都是1.5、与运行Maven时的JDK版本无关、如果你想要改变这些默认设置、可以参考 Setting the -source and -target of the Java Compiler中的描述来设置 source 和target 选项


这是Maven已知的一个特性。除非在你的POM文件中显示的指定一个版本,否则会使用编译器默认的source/target版本1.5、主要还是在于Eclipse中Maven的集成方式起到了关键作用、它会从POM文件中生成项目的.project,.classpath以及.settings、因此除非POM文件指定了正确的JDK版本、否则你每次更新项目配置的时候它都会重置到1.5版本


三、jdk1.7解决方案

在pom.xml文件中增加如下配置

</project>
    <build>
        <finalName>income</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

有了如上配置、在每次更新之后项目的java版本就会是java 1.7了、所有的误报错也就随之消失了