问题:

我的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 修改后自动重置问题相关推荐

  1. eclipse 修改maven项目的jdk版本

    eclipse 修改maven项目的jdk版本 CreationTime--2018年6月8日10点29分 Author:Marydon 1.情景展示 jdk版本太低,如何修改 2.错误方式 第一步 ...

  2. maven项目的pom文件中各标签理解

    本文来说下maven项目的pom文件中各标签理解 文章目录 常用标签 常用标签 POM是项目对象模型(Project Object Model)的简称 pom.xml主要描述了项目的maven坐标,该 ...

  3. eclipse 配置java路径_Java修改eclipse中web项目的server部署路径问题

    和MyEclipse不一样,在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse ...

  4. java项目如何更改路径_Java修改eclipse中web项目的server部署路径问题

    和MyEclipse不一样,在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse ...

  5. SVN优化(一) SVN忽略maven项目的target

    SVN优化(一) SVN忽略maven项目的target 一 eclipse刚开始导入的项目: 二  解决办法 方式一: 在项目代码路径,如: F:\xyx\sl  鼠标右键,"Tortoi ...

  6. maven项目的Archetype常用选择

    maven项目的Archetype常用选择 在使用idea构建项目时候, 会有如下界面: 这里的Archetype表是使用哪一个模板来初始化我们的项目:简单的说,Archetype是Maven工程的模 ...

  7. 计算机公式乘以百分之十五,EXCEL表格数据乘以15的公式【EXCEL表格中可以套用公式来实现输入数据后自动乘以某个数据的计算吗?】...

    EXCEL表格中数据如何自动计算乘以80%的数据 在某个空白单元输入0.8,然后复制这个单元,选择你要乘的区域,点 选择性粘贴-值-乘,ok! 怎样用EXCEL表格自动计算乘法? 操作方下: 1.首先 ...

  8. Django框架(4.django中进入项目的shell之后对数据表进行增删改查的操作)

    django设计模型类.模型类生成表.ORM框架简介:https://blog.csdn.net/wei18791957243/article/details/88657270 数据操作 完成数据表的 ...

  9. maven项目的pom文件中常用的简单的标签理解

    maven的pom文件一些标签的理解 在本篇文章中,我只是将pom文件中的一些常用的并且比较简单的标签理解标记注释了.还有很多并常用但是也很重要的这里并没有列出.因为本人水平也有限的,所以请谅解. & ...

最新文章

  1. git 代码托管使用方法
  2. 单选框-复选框重置的方法
  3. 让linux服务器支持安全http协议(https)
  4. 大前端完整学习路线(完整版),路线完整版
  5. mysql开启yum search pt-mysql_Centos使用MySQL工具Percona Toolkit
  6. Java 抽象类和接口的区别
  7. oracle查看数据库所有列,sql – 如何查看oracle数据库中表的列的所有元数据?
  8. 硬件基础知识---(15) 二极管单项导电特性
  9. linux安装界面意思,为linux安装图形化界面
  10. Mysql创建用户和给用户授权
  11. LeetCode分类-前400题
  12. 概率论——Jordan公式
  13. UFS Hibernate介绍--代码部分
  14. 行为识别特征提取综述
  15. matlab站点插值格点,基于xarray的气象场站点和格点插值
  16. ORCALE DDL,DML,DQL命令
  17. web 渗透测试笔记
  18. 06_02_任务三:Spring JDBCTemplate 声明式事务
  19. 剥开O2O这个伪命题
  20. JSR303校验前端传递的数据

热门文章

  1. 二手书店APP软件开发定制
  2. border边框部分不显示
  3. FBX与Opengl骨骼系统
  4. jekyll部署到服务器
  5. 浅谈根号分治——暴力的美学
  6. python 听歌识曲_Shazam听歌识曲算法解析+python实现-3 检索歌曲
  7. 写给新人的话——谈谈应届生入职后应该怎样快速成长
  8. 基于微信小程序的童装(服装)商城的设计与实现
  9. 推测的删除锁(Speculative Lock Elision):实现高并发多线程执行
  10. 林轩田机器学习基石(Machine Learning Foundations)笔记(一)