IDEA中maven项目的language level 修改后自动重置问题
问题:
我的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 中添加如下内容即可:
<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>
你的点赞与评论是我最大的创作动力!
IDEA中maven项目的language level 修改后自动重置问题相关推荐
- eclipse 修改maven项目的jdk版本
eclipse 修改maven项目的jdk版本 CreationTime--2018年6月8日10点29分 Author:Marydon 1.情景展示 jdk版本太低,如何修改 2.错误方式 第一步 ...
- maven项目的pom文件中各标签理解
本文来说下maven项目的pom文件中各标签理解 文章目录 常用标签 常用标签 POM是项目对象模型(Project Object Model)的简称 pom.xml主要描述了项目的maven坐标,该 ...
- eclipse 配置java路径_Java修改eclipse中web项目的server部署路径问题
和MyEclipse不一样,在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse ...
- java项目如何更改路径_Java修改eclipse中web项目的server部署路径问题
和MyEclipse不一样,在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse ...
- SVN优化(一) SVN忽略maven项目的target
SVN优化(一) SVN忽略maven项目的target 一 eclipse刚开始导入的项目: 二 解决办法 方式一: 在项目代码路径,如: F:\xyx\sl 鼠标右键,"Tortoi ...
- maven项目的Archetype常用选择
maven项目的Archetype常用选择 在使用idea构建项目时候, 会有如下界面: 这里的Archetype表是使用哪一个模板来初始化我们的项目:简单的说,Archetype是Maven工程的模 ...
- 计算机公式乘以百分之十五,EXCEL表格数据乘以15的公式【EXCEL表格中可以套用公式来实现输入数据后自动乘以某个数据的计算吗?】...
EXCEL表格中数据如何自动计算乘以80%的数据 在某个空白单元输入0.8,然后复制这个单元,选择你要乘的区域,点 选择性粘贴-值-乘,ok! 怎样用EXCEL表格自动计算乘法? 操作方下: 1.首先 ...
- Django框架(4.django中进入项目的shell之后对数据表进行增删改查的操作)
django设计模型类.模型类生成表.ORM框架简介:https://blog.csdn.net/wei18791957243/article/details/88657270 数据操作 完成数据表的 ...
- maven项目的pom文件中常用的简单的标签理解
maven的pom文件一些标签的理解 在本篇文章中,我只是将pom文件中的一些常用的并且比较简单的标签理解标记注释了.还有很多并常用但是也很重要的这里并没有列出.因为本人水平也有限的,所以请谅解. & ...
最新文章
- git 代码托管使用方法
- 单选框-复选框重置的方法
- 让linux服务器支持安全http协议(https)
- 大前端完整学习路线(完整版),路线完整版
- mysql开启yum search pt-mysql_Centos使用MySQL工具Percona Toolkit
- Java 抽象类和接口的区别
- oracle查看数据库所有列,sql – 如何查看oracle数据库中表的列的所有元数据?
- 硬件基础知识---(15) 二极管单项导电特性
- linux安装界面意思,为linux安装图形化界面
- Mysql创建用户和给用户授权
- LeetCode分类-前400题
- 概率论——Jordan公式
- UFS Hibernate介绍--代码部分
- 行为识别特征提取综述
- matlab站点插值格点,基于xarray的气象场站点和格点插值
- ORCALE DDL,DML,DQL命令
- web 渗透测试笔记
- 06_02_任务三:Spring JDBCTemplate 声明式事务
- 剥开O2O这个伪命题
- JSR303校验前端传递的数据