maven编译始终提示无效的目标发行版的解决方法

摘自个人印象笔记2021-05-07:https://app.yinxiang.com/fx/55e1d5f4-aeea-446a-a768-0f1a48195f5b(图显示不完整可查看原笔记内容)

1:确保IDE中的编译版本正确

在idea中,主要看项目属性中和setting的java compiler中对应的jdk版本是否正确,如下:

项目属性中查看:

setting中查看:

2:确保pom文件中的maven-compiler-plugin插件配置正确
org.apache.maven.plugins maven-compiler-plugin 3.1 1.9 1.9

3:如果mvn compile编译提示如下异常信息:

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

可使用以下命令显示mvn编译详细信息:

mvn -X -U clean compile

4:如果以上1、2项都正确,但仍然提示"无效的目标发行版",则需要重点注意:

用以下命令查看mvn所使用的jdk是哪个版本:

mvn -version

输出如下字样:

注意,其中的Java version代表着maven使用的jdk版本,此版本要和maven-compiler-plugin插件中配置的source和target的版本相对应!

比如以上图中配置的编译版本是1.9,但是maven实际使用的是1.8的jdk,则会提示"无效的目标发现版本:1.9"!!!

原理:

Maven是从JAVA_HOME变量中而不是从PATH环境变量中获取的Java版本,所以本机即使配置的1.9的默认jdk,但是由于JAVA_HOME指向的是另外一个jdk,就会出现编译版本的问题!

相关推荐
阿智智7 分钟前
使用Struts2遇到的Context[项目名称]启动失败问题解决(Java Web学习笔记)
java·struts·context启动失败
Yang-Never33 分钟前
ADB->查看进程并强杀进程
android·java·开发语言·adb·kotlin·android studio
单线程bug36 分钟前
java 如何判断两个List<String>集合是否存在交集
java·list
文浩(楠搏万)1 小时前
如何从 Keycloak 的 keycloak-themes.jar 中提取原生主题并自定义设置
java·keycloak·oauth·jar·主题·单点登录·sso
李豆豆喵1 小时前
第34天:安全开发-JavaEE应用&反射机制&攻击链&类对象&成员变量方法&构造方法
java·java-ee
DDDDDBBBBBBBAAAAA1 小时前
ORACLE-执行计划查询
java·数据库·sql·oracle
_未知_开摆1 小时前
CSS | CSS实现两栏布局(左边定宽 右边自适应,左右成比自适应)
java·前端·javascript·css·html·css3
华子w9089258591 小时前
基于Java+SpringMvc+Vue技术的宠物分享平台
java·开发语言·宠物
白宇横流学长1 小时前
基于Java的推箱子游戏设计与实现
java·python·游戏
baozhengw1 小时前
SpringBoot项目实战(41)--Beetl网页使用自定义函数获取新闻列表
java·前端·spring boot