我正在尝试将依赖项添加为jar文件,并且该jar随附了运行所需的所有类。
compile files('lib/org.hl7.fhir.igpublisher.jar')
除此之外,我还没有其他依赖项作为maven依赖项添加。
compile ("ca.uhn.hapi.fhir:hapi-fhir-base:2.3")
现在我面临很多与类冲突相关的问题,因为相同的类已经附带了不同的版本。
在理想的情况下,我该如何解决这个问题?我想说本地jar应该总是使用自己的文件,其他依赖应该忽略本地jar文件。
注意: - 我正在使用IntelliJ的想法。
答案 0 :(得分:0)
这是一个棘手的问题。只有一个类路径,同一个类的多个版本意味着只有一个版本是可见的,而其他版本是隐藏的。
人们通常应该避免申报依赖于"胖罐"包含自己的依赖项。如果可能的话,应该使用没有依赖关系的slim版本(通常两个版本都已发布)。如果没有替代方案,可以通过手动拆分jar文件来自己构建这样的超薄jar。也可以通过仔细排序类路径上的依赖关系来控制结构,但这有点脆弱。