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,就会出现编译版本的问题!

相关推荐
liangbo712 分钟前
06-JVM垃圾回收器之CMS
java·jvm
黑马程序员毕设14 分钟前
基于Java的仪器管理系统设计与实现
java·开发语言·spring boot·后端·微信小程序
骇客野人27 分钟前
SpringBoot电商购物车、结算、下单、库存方案设计与落地实施步骤
java·spring boot·后端
哪 吒1 小时前
华为OD机试 - 云服务安全策略最优选择 - 深度优先搜索DFS(Java 新系统 200分)
java·华为od·深度优先
拒绝内耗。1 小时前
程序员学架构(一):一张图看懂 Java 后端架构:一个请求怎样从手机到数据库?
java·智能手机·架构
棣廷1 小时前
初识Python面向对象
java·开发语言
用户3126874877201 小时前
ThreadLocal 到底会不会内存泄漏?源码级拆解 + 线程池陷阱
java
珍珠先生1 小时前
P11 · MySQL 驱动版本过旧:Client does not support authentication protocol
java
~木雨1 小时前
Java 并发编程架构全景:并发层的五域设计 —— 线程模型、线程池隔离、并发安全到问题治理(全体系汇总)
java·安全·架构·线程池·并发编程·高并发架构
极小狐1 小时前
从复制粘贴到可复用组件:极狐GitLab CI/CD 组件目录实战
java·ci/cd·gitlab·devops·组件化