java - Gradle、Java 文件 jar 依赖项与 Maven 中央依赖项之间的冲突

标签 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 idea。

最佳答案

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

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

关于java - Gradle、Java 文件 jar 依赖项与 Maven 中央依赖项之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43657212/

相关文章:

java - Spring WebTestClient JSON LocalDate 解码

java - 为运行时生成的 POJO 类添加注解

java - ClassNotFoundException : org. hibernate.ejb.HibernatePersistence 使用 maven 部署

tomcat - IntelliJ 和 Tomcat.. 如何..?

java - libGDX 口袋妖怪式移动(移动前转身)

java - 使用 hibernate 版本列时获取 NPE

java - 列出的哪个 .jar 包含类 'com.twitter.finagle.stats.ExceptionStatsHandler' ?

java - 使用 Tycho 在同一项目中进行源代码和测试源代码

intellij-idea - IntelliJ : No autocomplete for Kotlin?

IntelliJ IDEA 中的 JavaFX 应用程序无法在资源中找到 CSS 文件