🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # maven 依赖冲突 如果在同一个工程下,加入多个依赖包只是版本等不同,则不遵循以下原则,会变成之后的版本覆盖掉之前的版本。后引入的jar包覆盖之前的Jar包。 而在Maven工程之间依赖关系,则遵循: * 短路优先:即找到该不同版本的Jar包,那个离着当前工程最近,就是用那个。 ``` A->B->X(v1.0),A->C->D->X(v2.0) A-->X(v1.0) ``` * 声明顺序:即如果找到该不同版本的Jar包的路径长度是相同的,那么在当前工程引用其他工程的时候,那个工程里的Jar包先被解析就是用谁。即先来后到。例:当A工程引用了B和C工程,取决于是B先被解析还是C先被解析,则选择谁的Jar包,主要看配置文件中的依赖的位置。 ``` A->B->X(v1.0),A->C->X(v2.0) A-->X(v2.0) ``` 也就是说路径长度相同时,哪个dependency先在pom.xml声明,哪个就优先。