概述
最近将Intellij Idea的版本升级之后,在对maven项目进行编译或打包时,经常出现一大堆的错误,错误的提示基本上都是jdk版本不正确导致的语法错误。刚开始没太留意,以为是默认配置没有修改。于是把Settings中的Java Compiler和Project Settings中的Language level都改为自己使用的版本,比如jdk1.7,问题暂时得到解决。可是下次编译或打包又会偶然出现同样的问题(后来发现之所以偶然出现是因为对pom文件改动才会出现)。
原因分析
经排查,原来是这个问题的根源在于maven的pom.xml文件中未配置jdk版本导致。当未配置jdk版本时,一旦pom文件发生变化,Java Compiler和Language level会自动变回到原来的默认1.5版本。
解决方案
在pom文件中添加maven-compiler-plugin插件,并指定jdk使用的jdk版本即可解决上面问题。maven-compiler-plugin的配置同时对Java compiler和Language level同时生效。
配置内容如下:
方法一
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
方法二
<properties>
<project>UTF-8</project>
<project>UTF-8</project>
<java>1.8</java>
<maven>1.8</maven>
<maven>1.8</maven>
<encoding>UTF-8</encoding>
</properties>