欢迎关注大数据技术架构与案例微信公众号:过往记忆大数据
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
过往记忆大数据

Intellij IDEA 中 Java Language Level 设置

最近使用 Intellij IDEA 打开之前写的 HBase 工程代码,发现里面有个语法错误,但之前都没问题。

Intellij IDEA 中 Java Language Level 设置
如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

后面发现,不管你使用的 JDK 是什么版本(我这里用的是 JDK 1.8),Intellij IDEA 设置的 Language Level 都是 1.5,如下:

Intellij IDEA 中 Java Language Level 设置
如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

而且即使你手动将上面的 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)
喜欢 (4)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!