Maven依赖重复及版本问题

这里写图片描述

首先,遇到了NoSuchMethod异常,第一反应是类没有加载,查看了一下发现有这个类没有这个方法
这里写图片描述

这里写图片描述

这个类是com.google.guava下的。
我的pom文件中按顺序引入了三个依赖
1.dubbo
2.curator
3.spirngfox.swagger2

这三个依赖中都包含guava,又由于dubbo依赖处于第一位,所以maven3引入了dubbo中16.01版本的guava。curator中guava的版本为10.1,swagger中guava的版本为20.1。由于swagger需要的版本高于引入的版本(20.1的版本由于conflict冲突而被丢弃)也因此导致了NoSuchMethod异常。
这里写图片描述

解决方案:
1、把最高版本的放在前面,maven3在引入这个版本后,不会引入其他版本
2、用把其他版本排除掉
3、直接在最前面引入适当版本的guava(本节中)依赖,maven不会再引入子依赖

idea插件maven helper

老实讲,这个问题还是花了我很长的时间,一方面是刚开始没有想到是依赖冲突的问题,还有一个就是依赖冲突不好找。
可以用:mvn dependency:tree -Dincludes=com.google.guava
但是还是不太好用,于是直接上idea plugin:maven helper

安装后重启idea,在pom.xml文件的左下角出现了一个dependency analyzer
这里写图片描述

棒棒哒

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值