maven依赖冲突解决方案

1. 传递依赖

  1.1 什么是传递依赖

    如果A依赖于B,B依赖于C,则称B是A的直接依赖,C是A的传递依赖

  1.2 传递依赖冲突

    如A依赖于B,B依赖于C(1.1版本),同时A依赖于D,D也依赖于C(2.1版本)。那么此时A可能传递依赖C的1.1版本,也可能传递依赖C的2.1版本。造成冲突。

  1.3 传递依赖的解决

    1.3.1 第一声明者优先原则

      谁先声明(即<dependency>配置的先后顺序中先配置的),就用谁的传递依赖。

      举例:如果我们的A项目中依赖了B的jar包,B依赖了C的1.1版本。同时我们的A项目依赖了D的jar包,D依赖了C的2.1版本。则如果在配置文件中我们先配置了依赖B,则A项目会传递依赖C的1.1版本。

    1.3.2 路径近者优先原则

      直接依赖 高于 传递依赖

      举例:如果我们的A项目中依赖了B的jar包,B依赖了C的1.1版本。同时,我们直接A项目中依赖C的2.1版本。则A项目最终会依赖C的2.1版本。(因为C的2.1版本是A的直接依赖,级别要高于1.1版本相对于A的传递依赖)

注:以上两种原则为maven的自己调节原则

    1.3.3 排除依赖

      将不需要依赖的传递依赖排除掉

      在<dependency>标签中添加子标签<exclusions>和<exclusion>将某传递依赖的jar包排除掉

    1.3.4 版本锁定(推荐使用)

      直接指定所依赖的jar包版本。

      使用<dependencyManagement>标签,在改标签中明确指定所依赖的jar包的版本。

      

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
添加maven依赖报错可能有多种原因,以下是一些常见的解决方案: 1. 检查maven仓库配置是否正确。确保maven的配置路径和本地仓库的配置正确,包括settings.xml和仓库地址等配置项。\[1\] 2. 清理maven缓存。使用clean命令清理maven缓存,并在刷新后重新执行操作。同时,清理IDEA的缓存并重启项目也可能有帮助。\[2\] 3. 解决jar包冲突问题。可以使用插件来查看是否存在重复的依赖,并根据需要下载正确的依赖。如果下载的依赖有问题,可以尝试删除本地仓库的缓存文件并重新下载。\[2\] 4. 检查依赖的版本兼容性。有时候,依赖的版本可能与使用的JDK版本或项目的maven版本不兼容。尝试切换依赖的版本或确保maven版本与项目版本相同。\[2\] 如果以上方法都没有解决问题,可以尝试以下操作: 1. 检查pom文件中的报错。如果pom文件中有报错,可以尝试执行第3步操作。\[3\] 2. 检查idea右侧的MavenProject插件报错。如果插件报错,同样可以尝试执行第3步操作。\[3\] 3. 找到对应的pom文件,将其剪切并重新导入maven,然后再将剪切的内容粘贴回原位置。这样可以重新导入依赖解决问题。\[3\] 希望以上解决方案能够帮助您解决添加maven依赖报错的问题。 #### 引用[.reference_title] - *1* *3* [IDEA-maven报错问题的解决方案(四步解决-详细版本)](https://blog.csdn.net/weixin_45536587/article/details/103968145)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [IDEA中maven依赖报错解决方案](https://blog.csdn.net/qq_42074921/article/details/85322513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值