maven依赖传递及如何解决maven的jar包冲突
创始人
2025-06-01 17:06:14
0

文章目录

  • 一、maven依赖管理
    • 1、jar包管理:依赖管理
    • 2、三个仓库概念
    • 3、坐标的构成
  • 二、maven依赖传递和冲突解决
    • 1、路径近者优先原则
    • 2、第一声明者优先原则
    • 3、 排除依赖
    • 4、版本锁定 (经常使用)

一、maven依赖管理

1、jar包管理:依赖管理

  • 本地仓库存放很多jar,供maven使用,多个项目共用本地仓库。
  • maven通过建立本地仓库索引,可以快速找到符合要求的jar包。
  • 本地仓库的设置:conf->settings.xml中 localRepository标签中路径配置成自己本地仓库位置即可。
  • -Maven管理jar包的过程,先根据坐标,从本地仓库找jar,如果找不到,配置了远程仓库,到远程仓库(私服:公司维护)找下载到本地仓库,找不到再去中央仓库(第三方团队维护:国内常用阿里云仓库镜像比较快)下,如果没有建立远程仓库,直接去中央仓库找。
  • 私服可以自行搭建和使用

2、三个仓库概念

本地仓库、远程仓库、中央仓库。
在这里插入图片描述

3、坐标的构成

公司、组织名(groupId)+项目名(artifactId)+版本号(version)组成。可在pom.xml中查看。

二、maven依赖传递和冲突解决

在我们导入依赖时,maven会把我们导入包的直接依赖和传递依赖都导进来。两个版本就可能导致冲突。

依赖冲突版本解决方案:

1、路径近者优先原则

我们说base-project依赖B,再依赖C,引入了Tools.jar 2.0
而base-project直接依赖A,引入了Tools.jar 1.0 比B->C更近,即路径更近,所以Tools.jar 1.0优先被依赖引入。
在这里插入图片描述

不建议大量使用该原则,如果jar一多,需要考虑分析的路径关系就变得十分复杂。

2、第一声明者优先原则

掉换Maven依赖的顺序,在pom中以先声明的为准。
在这里插入图片描述

3、 排除依赖

通过exclusion标签将artifactId:spring-beans(5.2.8.RELEASE)排除:
在这里插入图片描述
此时项目中spring-beans5.2.8.依赖就会没有了。

4、版本锁定 (经常使用)

在pom中使用dependencyManagement标签进行版本锁定(注意dependencyManagement中只是声明使用的版本,不会导入依赖,真正的导入是和build标签或者说和dependencyManagement并列的dependencies标签。)

   5.0.5.RELEASE     org.springframeworkspring-beans${spring.version}         

maven入门、常用命令、生命周期等可查看maven入门篇学习。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...