如果解决了你的问题,麻烦点赞评论支持一下;如果觉得文章有错误,麻烦评论指出,我会第一时间评论修改!
开发工具
- IntelliJ IDEA 2018.3.5(Ultimate Edition)版本
- Mac
解决方法
Project Settings页面,保证Modules里的Language Level版本高于Project里的Project SDK版本- 如果使用了
maven-compiler-plugin插件,请保证source和target版本高于Project里的Project SDK版本 - 注意,不是修改
Project里的Project Language Level版本,具体原因参照下面


原因(重点,理解了下次就不会再出错)
- 几个版本的含义
Modules的Project SDK:项目实际编译所用的版本,即最后生成的class文件是使用该版本编译的,一般都是开发人员自行安装在机器上,取决于运行环境!Project里的Project Language Level:项目的全局检查版本,我理解为工程最低支持版本;IDEA会使用自带的Language Level指定的jdk版本来对我们的代码进行编译检查Modules里的Language Level:指定模块的最低支持版本,作用同Project Language Level,只是作用域更小maven-compiler-plugin:作用同Project Language Level,不依赖于开发软件,更加有效!
- 几个检查版本的优先级:
maven-compiler-plugin>Project Language Level>Language Level, 即只要指定了优先级更高的设置(如maven-compiler-plugin)的版本,后者(如Project Language Level)不生效;出现错误,原因只会出在优先级更高的配置! - 版本检查的意义:很多时候,尤其是大的项目,我们无法保证生产环境JDK的版本,与我们实际本地开发的版本一致,所以需要通过该机制进行检查
- 建议:项目在生产运行时,没有IDEA的环境,所以我建议大家使用
maven-compiler-plugin去进行运行前的版本检查 - 补充:使用
maven-compiler-plugin时,如修改后问题没有坚决,请先mvn clean一下
测试代码
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kf57f531-1573651174439)(http://psee6b08v.bkt.clouddn.com/8.png)]](https://i-blog.csdnimg.cn/blog_migrate/172180f5bac0f75652427870a5a5fcd8.png)
本文详细解析了IntelliJ IDEA与Maven在项目中遇到的版本冲突问题,阐述了不同版本设置的作用及优先级,提供了有效的解决策略,包括如何正确配置maven-compiler-plugin,以确保代码在不同环境中的一致性和兼容性。
3952





