繁体   English   中英

具有相同子依赖关系的不同版本的Maven依赖关系

[英]Maven dependencies with different versions of the same sub-dependency

我的Maven依赖项有这种情况:

  • X1需要D2.2。
  • Y1需要Z1,而Z1需要D2.1。

如果我强迫所有人使用D2.2,则Z1在运行时将失败,因为Z1需要D2.1中的类版本(D2.2中不再存在)。 如果我强迫所有人使用D2.1,则X1会失败,因为它需要一个新版本的类,而该类现在在D2.2中。 将Z1升级到最新版本无效,因为它仍使用D2.1。 X1和Y1也是如此。

我该如何进行这项工作?

谢谢,阿尔瓦罗

您刚遇到菱形依赖问题 这是一个真正的痛苦,并且在存在顺序关系的任何地方都会显示出来。 依赖关系类似于顺序,继承也一样,这就是Java中不允许多重继承的原因。 它甚至可以推断出来,即所谓的尼克松钻石作为钻石依赖类比。

要解决此问题,如果您可以访问Z1,或者它是开源的,则对其进行修补/派生/修改以使用D2.2,然后修改/分叉/修补Y1以使用您修补的Z1。

如果您有自己的私有/镜像工件存储库,我建议进行修补。 创建一个构建作业,以克隆开源版本,进行文件修改,构建并将其发布到工件仓库。 或者,或者另外,进行开源更改。

祝好运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM