如何处理 Java 中的依赖冲突
How to handle conflicting dependencies in Java
在我的 Java 项目中,我有两个外部依赖项 A 和 B。我将它们作为 JAR 文件放在我的构建路径中。项目 A 和 B 都有外部依赖项目 C。但是它们依赖不同版本的 C。如果我使用与 A 兼容的版本,则 B 中断,反之亦然。
如何处理?
欢迎来到依赖地狱。
三种方法:
如果项目A和B至少有一个是你的,你可以尝试更改代码以兼容所需的C版本。理想情况下,你可以将A和B都更新为C 的最新稳定版本和 "repair" 使其工作的代码。
如果 A 和 B 都是外部项目,您可能会尝试使用不同版本的 A 和 B,因为它们可能依赖于不同版本的 C。也许您会找到与同C.
使用 Maven shade 插件构建一个 shaded jar。在这里,您修改了一个 C 版本的包名称,使其独立于另一个版本。
在我的 Java 项目中,我有两个外部依赖项 A 和 B。我将它们作为 JAR 文件放在我的构建路径中。项目 A 和 B 都有外部依赖项目 C。但是它们依赖不同版本的 C。如果我使用与 A 兼容的版本,则 B 中断,反之亦然。
如何处理?
欢迎来到依赖地狱。
三种方法:
如果项目A和B至少有一个是你的,你可以尝试更改代码以兼容所需的C版本。理想情况下,你可以将A和B都更新为C 的最新稳定版本和 "repair" 使其工作的代码。
如果 A 和 B 都是外部项目,您可能会尝试使用不同版本的 A 和 B,因为它们可能依赖于不同版本的 C。也许您会找到与同C.
使用 Maven shade 插件构建一个 shaded jar。在这里,您修改了一个 C 版本的包名称,使其独立于另一个版本。