欢迎来到我的博客: http://chenb.in
起因
因将swagger升级到了2.9.2,再次启动项目时,爆出
The following method did not exist:
com.google.common.collect.FluentIterable.concat(Ljava/lang/Iterable;Ljava/lang/Iterable;)Lcom/google/common/collect/FluentIterable;
升级完依赖遇到这种什么方法找不到的,十有八九就是发生依赖冲突了
解决方式
在同事推荐下,下载来IDEA插件MavenHelper
来解决问题
项目情况如下:
我在模块A引入了Swagger,在admin模块下的pom.xml下,此时通过MavenHelper发现,冲突包为guava,此时需要20版本的guava包,但是maven找到的只有18.0
因为maven肯定是会下载swagger所需要的包,但此时却找不到包,只有一种可能
整个项目使用了别的有着guava-18.0的jar包,而忽略了有着guava-20.0的这个包
因为项目自己选择了18.0但我们需要20.0,所以我选择直接排除guava-18.0这个依赖,再点击reimport
此时在看其他模块,发现有个模块已经排除了guava-18这个依赖
结束语
此时再启动项目,项目运行成功,但是上面这个模块原先运行着guava-18的依赖,现在强制给他升级到20.0,可能会有着别的问题,就像jdk升级版本会有各种问题一样
如果有问题的话还是可以使用那个万金油方法,回滚swagger依赖版本到2.7.0,毕竟能用就行,还要啥自行车