最近我在Java中遇到了一个依赖地狱的问题。将来是否有适当的程序来避免这种情况发生?
首先,使用maven或gradle这样的依赖管理器。没有包含第三方jar的lib
文件夹,显然没有从其他项目复制类或*.java文件到您的项目。很抱歉,如果这是显而易见的,但我看到很多项目使用这种技术。
下一个阶段是依赖性的优化。您可以使用库A和库B,它们都使用库C。如果它们都使用相同版本的库C,则没有问题。如果它们依赖于库c的不同版本,那就麻烦了。在大多数情况下,这不会造成任何问题,你甚至可能没有意识到这个事实。然而,有时它可能会引起问题。为了避免这种情况,我建议您不时检查项目的依赖树,找到重复的,如果它们存在,请使用依赖管理器的排除指令来排除旧版本。
然而,由于这些版本的库不兼容,这可能会失败。在这种情况下,没有解决问题的通用方法。有时你必须降低一个(或几个)依赖项,以便让它们一起工作,并等待使用新版本库C的新版本(在我们的例子中)。2016年java程序员的运气是,大多数工具通常都是开源的,其中很多都可以贡献(例如通过github),所以有时你可以贡献你的修复,帮助自己和其他开发人员更快地获得新版本。