idea 打开 maven 项目 dependencies报红

问题描述:

下载了一个新项目,下载完所有的依赖,发现maven的的依赖在idea的里面报红,感觉很懵,全部下载完成后,还是报错.

分析:

1.首先查看自己本地仓库,发现jar包下载在仓库里面
在这里插入图片描述
2.仓库的坐标如下:
在这里插入图片描述
3.根据之前的经验,首先找到pom坐标的位置,注释掉这个坐标
在这里插入图片描述
4.然后执行clean命令,然后打开注解 然后import change ,然后发现项目报红没有了
在这里插入图片描述

分析

  • 首先想说一下,maven的包的冲突是如何产生的?
    首先假设(-> 表示依赖的关系) A->B->C->D1, E->F->D2,D1,D2 分别为 D 的不同版本。如果pom中引入了A和E之后,按照 Maven 传递依赖原则,工程内需要引入的实际 Jar 包将会有:A B C D1 和 E F D2,因此 D1,D2 将会产生包冲突.或者依赖关系不存在

如何解决包冲突

  • Maven 解析 pom.xml 文件时,同一个 jar 包只会保留一个,这样有效的避免因引入两个 jar 包导致的工程运行不稳定性。

Maven 默认处理策略

  • 最短路径优先
    Maven 面对 D1 和 D2 时,会默认选择最短路径的那个 jar 包,即 D2。E->F->D2 比 A->B->C->D1 路径短 1。
  • 最先声明优先
    如果路径一样的话,举个🌰: A->B->C1, E->F->C2 ,两个依赖路径长度都是 2,那么就选择最先声明。

检测包冲突工具

mvn dependency:help
mvn dependency:analyze
mvn dependency:tree
mvn dependency:tree -Dverbose

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值