jar包版本冲突怎样解决

jar包版本冲突怎样解决

问题产生的背景

​ maven 是一款 jar 包管理工具,它让我们不再关注jar包的查找和下载,通过搭建私服,对一个公司来讲,包的版本管理问题也变得so easy ,但是随之而来的,也也会产生新的问题。

问题产生的原因

​ maven 下载包是有原则的,对于一个项目同一种 jar 包,只会下载一个版本。

maven 是怎样选择不同版本的 jar 包的

  1. 覆盖优先,对于同一个 pom.xml 文件前面的会被后面的覆盖,所以子工程会优先父工程

  2. 依赖路径近优先,比如x,在A ->B->C->x(1.0), D->E->x(2.0) maven会选择x(2.0)

  3. 相同路径下,声明优先原则, 在pom.xml 中,从上到下,优先声明的版本会被选择

为什么会产生版本冲突

由于maven 只会选择不同版本的一个,如果使用低版本的,而引用高版本的是用来低版本的就会发生版本冲突;如果引用高版本,但是高版本不兼容低版本的内容,低版本使用到不兼容的部分,就会发生版本冲突。

版本冲突表现

版本冲突最常见的表现是某个类找不到

怎样解决版本冲突

  1. 首先需要找到那个jar包发生了版本冲突,这也是最为重要的。我想最为直接的方法就是找到发生类加载不到的类在那个 jar 下,一般而言,百度一下就能找到。如果还是没找到,就需要借助工具例如maven helper 来分析。
  2. 找到了版本的jar,就需要做出抉择,选择那个jar包。大多数选择是选择高版本,原因就是大部分都是高版兼容低版本。
  3. 建议通过dependencyManagement来管理jar 包的版本。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值