Gradle,Java在文件jar依赖项和maven中心依赖项之间发生冲突

时间:2017-04-27 12:02:12

标签: java maven intellij-idea gradle dependency-management

我正在尝试将依赖项添加为jar文件,并且该jar随附了运行所需的所有类。

compile files('lib/org.hl7.fhir.igpublisher.jar')

除此之外,我还没有其他依赖项作为maven依赖项添加。

compile ("ca.uhn.hapi.fhir:hapi-fhir-base:2.3")

现在我面临很多与类冲突相关的问题,因为相同的类已经附带了不同的版本。

在理想的情况下,我该如何解决这个问题?我想说本地jar应该总是使用自己的文件,其他依赖应该忽略本地jar文件。

注意: - 我正在使用IntelliJ的想法。

1 个答案:

答案 0 :(得分:0)

这是一个棘手的问题。只有一个类路径,同一个类的多个版本意味着只有一个版本是可见的,而其他版本是隐藏的。

人们通常应该避免申报依赖于"胖罐"包含自己的依赖项。如果可能的话,应该使用没有依赖关系的slim版本(通常两个版本都已发布)。如果没有替代方案,可以通过手动拆分jar文件来自己构建这样的超薄jar。也可以通过仔细排序类路径上的依赖关系来控制结构,但这有点脆弱。