图解Maven依赖冲突发生原因,可用Maven Helper插件(可以直接remove jar)辅助解决
1.依赖冲突发生原因
大多数的依赖冲突发生的原因是因为maven的传递依赖会引入很多隐式的依赖,这些依赖可能会和我们显示依赖版本不一致。
传递依赖
如图,我们显示依赖了 spring-boot1.5.9,和spring-core4.0.8(当然这种情况在正常情况下不会发生)
在这种情况,根据Maven的最短依赖路径原则,会使用spring-core4.0.8
当在启动项目的时候会报错
项目报错
这是因为spring-boot1.5.9运行所需要的spring-core版本是4.3.13,但是项目中编译的spring-core版本是4.0.8。
依赖冲突的原因总结一句话就是,依赖的版本和实际使用的版本不一致。
2.解决冲突(推荐使用Maven Helper)
-
发现了冲突的包之后,剩下的就是选择一个合适版本的包留下,如果是传递依赖的包正确,那么把显示依赖的包去掉。
-
如果是某一个传递依赖的包有问题,那么我们需要手动把这个传递依赖去掉
去掉某个传递依赖