在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.

如图:

相关推荐
yuweiade5 小时前
Spring Boot中使用Server-Sent Events (SSE) 实现实时数据推送教程
java·spring boot·后端
丈剑走天涯5 小时前
kubernetes java app 部署使用harbor私服 问题集合
java·容器·kubernetes
摇滚侠5 小时前
JAVA 项目教程《黑马商城-Redis 篇》,分布式架构项目,从开发到部署
java·redis·分布式
中年程序员一枚6 小时前
spring-cloud-starter-openfeign现实中的运行逻辑
java·spring boot·后端
子超兄6 小时前
线程池相关问题
java·开发语言
清水白石0086 小时前
Python 并发三剑客:多线程、多进程与协程的实战抉择
java·服务器·python
想搞艺术的程序员7 小时前
Java Survivor区学习笔记
java·笔记·学习·垃圾回收
毕设源码-赖学姐7 小时前
【开题答辩全过程】以 基于SSM在线考试系统的设计与实现为例,包含答辩的问题和答案
java
吾诺7 小时前
Java进阶,时间与日期,包装类,正则表达式
java·mysql·正则表达式
ole ' ola7 小时前
lambda表达式
java·前端·jvm