最近我在 dependency hell 上遇到了很多麻烦Java 中的问题。 是否有任何适当的程序来避免将来发生这种情况?
最佳答案
首先,使用像 maven 或 gradle 这样的依赖管理器。没有包含第三方 jar 的 lib
文件夹,显然没有将类或 *.java 文件从其他项目复制到您的项目。对不起,如果这是显而易见的,但我看到很多项目都是使用这种技术构建的。
然而,下一阶段是依赖关系的优化。您可以使用同时使用库C的库A和B。如果都使用相同版本的库C就可以了。如果它们依赖于库 C 的不同版本,那么麻烦就开始了。在大多数情况下,这不会导致任何问题,您甚至可能没有意识到这一事实。但是有时它可能会导致问题。为避免这种情况,我建议您不时检查项目的依赖关系树,查找重复项,如果它们存在,请使用依赖项管理器的排除指令排除旧版本。
然而,这可能会失败,因为这些版本的库不兼容。在这种情况下,没有解决问题的通用方法。有时您必须降级一个(或多个)依赖项以使它们一起工作并等待使用更新版本的库 C 的更新版本(在我们的示例中)。
Java 程序员在 2016 年的幸运在于,大多数工具通常都是开源的,并且其中很多都可以用于贡献(例如通过 github),因此有时您可以贡献您的修复并帮助自己和其他开发人员获得新版本更快。
关于java - 在 Java 中避免依赖 hell 的首选步骤是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38095187/