java构建路径之谜

java构建路径之谜,java,build,path,jar,Java,Build,Path,Jar,像往常一样,我的包构建在几个外部包的基础上。我想修改其中一个external,所以我去获取它的开源代码。它反过来又建立在更多外部的基础上,所以我得到了这些jar的jar,直到满足了除一个依赖项以外的所有依赖项:org.codehaus.jackson.JsonParser,从jackson mapper jar中调用。我猜JsonParser在jackson-core.jar中(你怎么知道的?)。我的依赖关系得到解决,以前看起来完整的6个源文件突然出现了不同的依赖关系。前进一步,后退六步。(月食

像往常一样,我的包构建在几个外部包的基础上。我想修改其中一个external,所以我去获取它的开源代码。它反过来又建立在更多外部的基础上,所以我得到了这些jar的jar,直到满足了除一个依赖项以外的所有依赖项:org.codehaus.jackson.JsonParser,从jackson mapper jar中调用。我猜JsonParser在jackson-core.jar中(你怎么知道的?)。我的依赖关系得到解决,以前看起来完整的6个源文件突然出现了不同的依赖关系。前进一步,后退六步。(月食中的这一切)我错过了什么?也许不是所有的依赖项都能在一个过程中找到?如何查找和解决依赖关系


谢谢

您需要概述您是如何处理依赖关系的。根据您的描述,听起来您是在手动计算所需内容,下载JAR并将其安装到项目中。这也许是最复杂、最慢、最痛苦的做事方式

我建议您考虑使用依赖关系管理器(通常与构建工具一起使用,或者使用具有内置依赖关系管理器的构建工具)。另一个更高级的工具(IMHO)是在后台使用Ivy,可以很容易地告诉您使用Ivy和Maven存储库来从中获取JAR


使用这些工具的好处是,它们可以解决找出依赖项和下载文件的繁琐工作。它们不是一个完整的解决方案,您仍然需要解决版本冲突和其他问题,但它们可以解决大部分问题。

是的,我正在手动完成,确认。我将研究这些工具,tyvm!哦,所有这些工具都有Eclipse插件和IntelliJ IDE插件,使那里的生活更轻松。更简单的问题..我构建这个外部包是为了利用一个非常小的更改。我是否可以用自己编译的一个或两个类文件覆盖jar文件中的内容这些文件的源代码?我想我可以更新jar.yesh,noobs:)是的,这是可能的。您需要创建自己的jar,并确保它位于原始jar之前的类路径上。然而,这不是一个推荐的做法,因为它太容易打破。更好的解决方案是使用您的更改创建您自己的完整API版本,并使用它。或者,研究API是否支持您扩展它的类。如果是这样,您可以在应用程序中这样做,只需使用原始API即可。