1.事情是这样的,我们的项目A里由三个模块引入了jar包 jarX, 版本为V1
分别是 ModuleY -> jarX v1
ModuleZ -> jarX v1
ModuleF -> jarX v1
这个v1的版本是在我们的最顶层pom文件里定义的,
同时moduleD -> jarD -> jarX 版本为V3
根据路径更短 有限原则,moduleD里的jarD里的jarX版本也会是v1
参考:https://blog.csdn.net/wangkun881112/article/details/88662577
知识点:
maven 如何确定采用的哪个版本
最短路径优先: A -> B -> C -> D1 , E -> F -> D2 ,这样当我们服务依赖A、E时,到达D2的路径比D1段,maven使用D2版本jar包
最新声明优先: A -> B -> D1 , E -> F -> D2 ,这样当我们服务依赖A、E时,由于先依赖A后依赖E,且到达D1D2的路径长度相同,maven使用D1版本jar包