最近使用 Intellij IDEA 打开之前写的 HBase 工程代码,发现里面有个语法错误,但之前都没问题。
后面发现,不管你使用的 JDK 是什么版本(我这里用的是 JDK 1.8),Intellij IDEA 设置的 Language Level 都是 1.5,如下:
而且即使你手动将上面的 Language Level 设置为 1.8,当 Intellij IDEA 重新加载 pom.xml 文件时, Language Level 又会变为 1.5!经过一番调查,原来发现居然是 maven compiler plugin 的问题,我这里用的 3.1 版本,在 maven compiler plugin 3.1 官方文档有下面的说明,具体参见 这里:
The Compiler Plugin is used to compile the sources of your project. Since 3.0, the default compiler is javax.tools.JavaCompiler (if you are using java 1.6) and is used to compile Java sources. If you want to force the plugin using javac, you must configure the plugin option 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. 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 Compiler 的 -source
和 -target
参数,具体如下:
<project> [...] <build> [...] <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> [...] </build> [...] </project>
当然,我们也可以如下设置
<project> [...] <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> [...] </project>
上面两种方法设置一个即可,设置完,当我们再刷新 Maven 项目的时候,Java Language Level 就不会再变动了。
本博客文章除特别声明,全部都是原创!原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Intellij IDEA 中 Java Language Level 设置】(https://www.iteblog.com/archives/2322.html)