我正在尝试将依赖项添加为 jar 文件,并且该 jar 附带了它运行所需的所有类。
compile files('lib/org.hl7.fhir.igpublisher.jar')
除此之外,我还有一些其他依赖项作为 Maven 依赖项添加。
compile ("ca.uhn.hapi.fhir:hapi-fhir-base:2.3")
现在我面临很多与类冲突相关的问题,因为相同的类已随不同版本一起提供。
在理想情况下,我应该如何解决这个问题?我想说的是,本地 jar 应该始终使用自己的文件,其他依赖项应该忽略本地 jar 文件。
注意:-我正在使用 IntelliJ idea。
最佳答案
这是一个棘手的问题。只有一个类路径,并且同一类有多个版本,这意味着只有其中一个版本可见,其他版本隐藏。
通常应该避免声明对包含自己的依赖项的“fat jars”的依赖项。如果可能,应该使用没有依赖项的精简版本(通常两个版本都已发布)。如果没有其他选择,可以通过手动拆分 jar 文件来自己构建这样一个 slim 的 jar。也可以通过仔细排序类路径上的依赖项来控制结构,但这有点脆弱。
关于java - Gradle、Java 文件 jar 依赖项与 Maven 中央依赖项之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43657212/