Maven依赖冲突问题

Maven依赖冲突问题,maven,Maven,我有一个项目a,它依赖于项目B 我分别开发了B B依赖于xml API jar 1.4.01 A依赖于xml API JAR2.0.2 当B使用XMLAPIsJAR1.4.01时,会出现臭名昭著的错误java.lang.NoClassDefFoundError:org/w3c/dom/ElementTraversal 当一个用户使用XMLAPIsJAR1.4.01时,我得到了一个连尝试都不想修复的级联错误 A是一个我正在稍微定制的项目 我能做什么?没有什么?需要改变B 最好的 丹尼尔事实上,你基

我有一个项目a,它依赖于项目B

我分别开发了B

B依赖于xml API jar 1.4.01

A依赖于xml API JAR2.0.2

当B使用XMLAPIsJAR1.4.01时,会出现臭名昭著的错误java.lang.NoClassDefFoundError:org/w3c/dom/ElementTraversal

当一个用户使用XMLAPIsJAR1.4.01时,我得到了一个连尝试都不想修复的级联错误

A是一个我正在稍微定制的项目

我能做什么?没有什么?需要改变B

最好的


丹尼尔

事实上,你基本上有三种选择:

  • 或者修改B,使其能够与XMLAPI2.0.2一起工作
  • 或者修改,使其可以使用XMLAPI1.4.01
  • 或者使用像OSGI这样的框架,它允许在同一个VM中同时加载不同版本的库(在不同的类加载器中)
  • 不管怎样,你都会有很多工作要做。。。
    我认为您可以尝试接近需要最少更改的一个…

    您可以重构其中一个以使用相同的依赖项。这是因为在最终版本中,A和B将位于同一类路径上,不能保证类加载器将一个加载到另一个上,这是由OS文件顺序定义的。另一种方法非常痛苦,您可能更喜欢重构(即创建您自己的类加载器)。