maven依赖冲突的原因及解决

1 maven出现依赖冲突的情况

(1) 传递依赖导致不同版本jar包冲突,maven采用就近原则排除了依赖路径比较远的jar

        1)如果排除的是旧版本的jar包,而调用的方法是最有新jar中才有的,这样就会报错,一般是ClassNotFound这类的错误

               

(2) 不同的jar包,出现了相同的类路径

        1)这种情况,jvm会加载第一个找到的类,找到的类恰好不是你需要的jar里面的类,例如找到了其他jar包中依赖的同名类,运行的时候就会存在找不动你要调用的方法,因为其他jar包的同名类中没有这个方法,如下提示类似这样的错误,这种错误是运行时才会报错

                     java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V

                    

(3)集成axis出现的问题,依赖的jar包是搞版本的,没有低版本的方法,例如axis依赖的日志包就和spring-jcl依赖的日志包有差别,需要把spring-jcl中的日志包排除掉

2 jar包冲突的解决方案

(1) idea可以安装 Maven Helper插件,帮组分析出现冲突的jar包

(2) 使用ctrl+shift+alt+n 查找类路径所在的jar包,把对应的jar包在pom中排除

3 maven 没有依赖冲突,但是idea左侧maven目录报红

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值