【问题标题】:Gradle, Java conflicts between a file jar dependency and maven central dependenciesGradle,Java文件jar依赖和maven中心依赖之间的冲突
【发布时间】:2025-12-25 22:15:11
【问题描述】:

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

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

除此之外,我还有一些其他依赖项被添加为 maven 依赖项。

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    通常应该避免在包含它们自己的依赖项的“胖罐子”上声明依赖项。如果可能,应该使用没有依赖项的 slim 版本(通常两个版本都已发布)。如果没有其他选择,可以通过手动拆分 jar 文件自己构建这样一个苗条的 jar。也可以通过仔细排序类路径上的依赖关系来控制结构,但这有点脆弱。

    【讨论】: