0

我们有一种情况,我们的一些依赖项具有相互冲突的依赖项。我们依赖于 A 和 B。A 依赖于 X 的版本 a。B 依赖于 X 的版本 b。

是否有任何依赖管理工具可以处理这种情况。感觉好像听说过一些动态加载依赖的依赖管理工具什么的。似乎它避免了遇到上述情况。我认为您可以以某种方式指定在给定瞬间加载哪个版本的 X。

有可能做这样的事情吗?代码中有什么方法可以根据需要加载和卸载依赖项吗?

我已经忘记了大部分编译器理论。而且我还没有处理太多依赖管理。因此,请原谅任何表现出来的无知。应该是正品吧!

4

1 回答 1

1
  1. 您可以使用 OSGi 或其他一些管理多个类加载器的框架,这样冲突的版本就不会出现在同一个类加载器中。

  2. 您可以通过创建类加载器尝试在小范围内自己做同样的事情。

  3. 您可以使用 maven-shade-plugin 重命名一个或多个副本中的包以避免冲突。

于 2012-04-11T15:00:13.500 回答