解决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了、所有的误报错也就随之消失了