
Maven中jar包冲突的解决方式
发布日期:2021-05-09 03:55:32
浏览次数:15
分类:博客文章
本文共 932 字,大约阅读时间需要 3 分钟。
现象
创建一个maven工程,引入spring-context包。
org.springframework spring-context 5.0.8.RELEASE
此时看左侧的lib,我们发现引入了一个坐标,多出了很多的jar包,这个现象叫做依赖传递,就是说,当前坐标所依赖的jar包也会一同引入进来,这里的版本都是5.0.8的。
接下来,我们再引入一个springmvc。我们换一个版本,我们引入4.2.4版本org.springframework spring-webmvc 4.2.4.RELEASE
我们通过idea给的maven分析图可以看出,mvc和context都依赖与sprng-core一个,依赖的是5.0.8版本,一个依赖的是4.2.4版本。
那么真正加载的是哪个版本呢。是5.0.8版本。此时就是存在了jar包的冲突问题,那么我们解决这个问题,有三种方式。声明优先原则
此时我们的pom文件中是先声明的5.0.8版本,后声明的4.2.4版本,我们将其调换顺序。
此时我们发现他们共同依赖的jar包,都变成了4.2.4版本,这就是声明优先原则。就近优先原则
比如,我们不想调换顺序,我们就是想使用4.2.4版本的spring-core。我们可以单独引入进来。
此时再看,我们发现依赖的spring-core已经变成了4.2.4版本了。这个就是就近优先原则,就近优先是直接依赖,直接依赖的优先级大于传递依赖的优先级。排除依赖
这种方式我们可以直接排除spring-context中的spring-core的传递依赖。
再看依赖,此时已经改为4.2.4.使用exclusions标签的时候,其内部不用写版本号,这是唯一不用写版本号的一种情况。因为他默认就去找当前依赖的版本了。发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月28日 10时56分29秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Centos 7 快速安装FTP服务
2023-01-26
centos 7 静态IP,指定DNS
2023-01-26
centos 7.3 启动mysql_centos7.3 搭建MySQL
2023-01-26
Centos 7.5 docker 容器怎么设置开机自启
2023-01-26
Centos 7.5 SSH改别的端口连接不上,只有默认端口才行(未解决)
2023-01-26
Centos 7.5 如何安装VMware Tools工具
2023-01-26
Centos 7.5 新磁盘创建和挂载XFS文件系统
2023-01-26
Centos 7.5安装safe-rm,防止rm -rf /命令误删除文件
2023-01-26
CentOS 7.X 系统安装及优化
2023-01-26
Centos 7下安装php+mysql+nginx+wordpress教程新版
2023-01-26
CentOS 7之Postfix部署系列 (一) CentOS安装
2023-01-26
flask框架面向移动端的虚拟物品订购平台毕设源码+论文
2023-01-26
flask框架飞机订票管理系统(毕设源码+论文)
2023-01-26
flask框架餐饮管理系统毕设源码+论文
2023-01-26
flask框架高性能教学资源平台设计与实现(毕设源码+论文)
2023-01-26
flask框架高校助学及勤工俭学管理系统(毕设源码+论文)
2023-01-26
flask框架高校图书管理系统设计与实现(毕设源码+论文)
2023-01-26
flask框架高校招生预报管理系统(毕设源码+论文)
2023-01-26
flask框架高校教师个人数字档案(毕设源码+论文)
2023-01-26
flask框架高校毕业生选题系统(毕设源码+论文)
2023-01-26