在我的 Java 项目中,我有两个外部依赖项 A 和 B。我将它们作为 JAR 文件放在我的构建路径中。项目A和B都有外部依赖项目C。但是它们依赖于不同版本的C。如果我使用与A兼容的版本,则B会崩溃,反之亦然。
如何处理这个问题?
最佳答案
欢迎来到依赖 hell 。
三种方法:
如果项目 A 和 B 中至少有一个是您的,您可以尝试更改代码以达到与所需版本 C 的兼容性。理想情况下,您可以将 A 和 B 都更新到最新的稳定版本C 语言并“修复”代码以使其正常工作。
如果 A 和 B 都是外部项目,您可能会尝试不同版本的 A 和 B,因为它们可能依赖于不同版本的 C。也许您会找到适用于相同 C 的组合。
使用 Maven 阴影插件构建一个阴影 jar。在这里,您修改一个 C 版本的包名称,使其独立于另一版本。
关于java - Java中如何处理冲突的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58145911/