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

您所在的位置:网站首页 gg修改器修改完后数据有变回来 IDEA中maven项目的language level 修改后自动重置问题

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

2024-07-02 22:24| 来源: 网络整理| 查看: 265

问题:

我的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.

使用 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 中添加如下内容即可:

1.8 1.8 org.apache.maven.plugins maven-compiler-plugin 3.6.0 1.8 1.8

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

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3