Maven依赖冲突
2021-04-09 21:13:57 9 举报
Maven依赖冲突
作者其他创作
大纲/内容
D内有E但外层也有E而且版本不一致
依赖C(1.0)
项目
maven同一个jar、包只会保留一个maven默认处理策略:1、最短路径优先 如图,D中有E,最外层也有E,外层E路径短,所以加载的是外层的E(1.0)2、最先声明优先 如图,A和B中C的路径在同一层,所以用最先声明,哪个在pom中先声明就用哪个。
依赖B
A和B都有依赖C两者的版本不一致导致了依赖冲突
依赖E(1.0)
Caused by:java.lang.NoSuchMethodErrorCaused by: java.lang.ClassNotFoundException报错的时候很有可能是依赖冲突的问题,因为不能版本的jar可能添加或者删除了类或者方法不报错不代表没有依赖冲突,刚好没用到被删除的方法或者类也不会报错依赖冲突在编译的时候是无法发现的,因为编译的时候只是将java文件编译成了字节码,只有使用这个类的时候才会加载类才发现这个类不存在
依赖C(2.0)
依赖E(2.0)
依赖D
解决方法:1、用<exclusion>标签去除冲突的jar包2、父工程中用<dependencyManagement>做版本锁定3、用idea插件maven Helper查找并解决
依赖A
0 条评论
下一页