在MAVEN中版本依赖有冲突改怎么处理

1.为什么会出现版本依赖的冲突

如果存在版本冲突,通常可能会引发的报错是ClassNotFoundException、NoSuchMethodError等错误。Maven依赖版本冲突通常是由于间接依赖导致同一个jar包存在多个不同版本。例如,如果B依赖了A的1.0版本,而C依赖了A的2.0版本,当项目同时依赖B和C时,A的两个不同版本被引入项目中,就会间接依赖A的1.0和2.0版本。产生对应的冲突依赖。

2.处理方法

2.1 使用exclusions标签

使用exclusions可以排除特定的依赖。例如,如果我们只需要依赖A的1.0版本,那么在依赖C时,可以通过exclusions排除依赖C的时候对A的依赖。

如图,我们在依赖spring-boot-starter-test的时候,可以通过exclusions去掉对junit-vintage-engine的版本依赖。

2.2 dependencyManagement标签

我们可以使用dependencyManagement进行依赖的版本号的锁定。如:我们只依赖A的1.0版本,此时可以在父工程中限定A的版本为1.0.

如图:

相关推荐
karry_k6 小时前
MyBatis批量insert-select踩坑:useGeneratedKeys=true 可能让PostgreSQL返回大量插入结果
java·后端
karry_k7 小时前
PostgreSQL 在 MyBatis 中执行正常 SQL 失效:一次 DELETE USING 踩坑记录
java·后端
SamDeepThinking10 小时前
从源码到代码:MyBatis-Flex 与 MyBatis-Plus 的逐项对比
java·后端·程序员
她的男孩13 小时前
Spring Boot 接 Flowable 工作流:用 3 个注解搭一个请假审批流程
java·后端·架构
荣码15 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
plainGeekDev16 小时前
Gson → kotlinx.serialization
android·java·kotlin
小bo波1 天前
Java Swing 图形用户界面实验 —— 从算术练习到游戏开发的完整实践
java·课程设计·gui·游戏开发·扫雷·swing
咖啡八杯1 天前
GoF设计模式——备忘录模式
java·后端·spring·设计模式