Maven项目在Update Maven之后JRE被改成1.5的解决方法
一、Maven Update 后 JDK变成1.5
在Eclipse中新建了一个Maven工程、然后更改JDK版本为1.7或者以上、结果每次使用Maven > Update project的时候JDK版本都恢复成1.5。
二、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.8解决方案
在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.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
有了如上配置、在每次更新之后项目的java版本就会是java 1.7了、所有的误报错也就随之消失了。
第二种方法
这个需要把项目打开,找到如图所示:.settings文件夹
打开org.eclipse.wst.common.project.facet.core.xml 这个文件,如图:
将 <installed facet="jst.web" version="3.0"/>的version的值改为3.0(报错的是什么版本,改成相应的版本即可)。