IDEA中maven项目的language level 修改后自动重置问题

举报
橙子园 发表于 2022/05/26 01:41:35 2022/05/26
【摘要】 问题: 我的JDK使用的是1.8,但是在IDEA中编写1.8特性的代码时却会爆红,而且编译也通不过,确定不是代码的问题后。转而发现了Language Level这个东西,IDEA中默认Language ...

问题:

我的JDK使用的是1.8,但是在IDEA中编写1.8特性的代码时却会爆红,而且编译也通不过,确定不是代码的问题后。转而发现了Language Level这个东西,IDEA中默认Language Level 5(即对应JDK1.5),打开Module Settings将Language level修改为8(即对应JDK1.8),但是重新刷新maven依赖时,又会变成Language Level 5。

language level 简介:

language level 这个功能应该算是 IntelliJ IDEA 特有的,说一下我的理解, Java JDK 在每个新版本都会有其新特性,新版本一般也会向下兼容旧版本的特性,IntelliJ IDEA 是对这些 JDK 的新特性是这样介绍的:

JDK 6 的新特性:@Override in interfaces
JDK 7 的新特性:Diamonds,ARM,multi-catch etc.
JDK 8 的新特性:Lambdas,type annotation etc.
JDK 9 的新特性:Jigsaw project etc.

  
 
  • 1
  • 2
  • 3
  • 4

使用 JDK 1.8 的时候,我们只能向下兼容 JDK 1.8 及其以下的特性,所以只能选择 1.8 及其以下的 language level。当我们项目使用的是 JDK 1.8,但是代码却没有使用 JDK 1.8 的新特性,最多使用了 JDK 1.7 的特性的时候我们可以选择 7 - Diamonds,ARM,multi-catch etc.。但是如果一个项目代码使用的 JDK 1.8 新特性:lambda 语法,但是 JDK 选择的却是 JDK1.7,即使 language level 选择了 8 - Lambdas,type annotation etc.,也是一样会编译报错。

总结 :language level限定项目编译检查时最低要求的 JDK 特性。


解决方法:

通过指定maven项目的Language Level值,来防止每次自动重置Language Level。在maven项目的pom.xml 中添加如下内容即可:

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

你的点赞与评论是我最大的创作动力!

在这里插入图片描述

文章来源: blog.csdn.net,作者:橙子园,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Chenftli/article/details/108622644

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。