在项目中或者 module 中,默认的 language level 都是是 jdk1.5。
在 java complier 和 project structure里每次修改完后,也只是当次修改有效。
刷新maven或者重启idea又都会变成 jdk1.5。
此时,我们可以在项目的父级的 pom.xml 文件中加入如下配置即可。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
出现这种情况的原因是 maven compiler plugin 的问题。官方的解释是:
Apache Maven Compiler Plugin(Apache Maven 编译器插件)
The Compiler Plugin is used to compile the sources of your project.
(Compiler Plugin 用于编译项目的源代码。)
Since 3.0, the default compiler is javax.tools.JavaCompiler (if you are using java 1.6) and is used to compile Java sources.
(从 3.0 开始,默认编译器是 javax.tools.JavaCompiler(如果您使用的是 java 1.6),用于编译 Java 源代码。)
If you want to force the plugin using javac, you must configure the plugin option forceJavacCompilerUse.
(如果要强制使用 javac 插件,则必须配置插件选项 forceJavacCompilerUse。)
Also note that at present the default source setting is 1.5 and the default target setting is 1.5, independently of the JDK you run Maven with.
(另请注意,目前默认源设置是 1.5,默认目标设置也是 1.5,与运行 Maven 的 JDK 无关。)
If you want to change these defaults, you should set source and target as described in Setting the -source and -target of the Java Compiler.
(如果要更改这些默认值,则应按照设置 Java 编译器的 -source 和 -target 中所述设置源和目标。也就是上面的配置。)
网友评论