我们的某些依赖项存在冲突的依赖关系。 我们依靠A& B. 依赖于X的版本a。 B取决于X的版本b。
是否有任何依赖管理工具可以处理这种情况。我觉得好像我听说过一些动态加载依赖项或类似内容的依赖管理工具。似乎它避免遇到上述情况。我想你可以用某种方式指定在给定的瞬间加载哪个版本的X.
有可能做那样的事吗?在代码中是否有任何方法可以根据需要加载和卸载依赖项?
我忘记了大多数编译器理论。而且我没有处理过依赖管理。所以请原谅任何无知。这可能是真的!
答案 0 :(得分:1)
您可以使用OSGi或其他管理多个类加载器的框架,以便冲突的版本不会在同一个类加载器中结束。
您可以尝试通过创建类加载器来自己做同样的事情。
您可以使用maven-shade-plugin将软件包重命名为一个或多个副本以避免冲突。