具有不同组ID的依赖冲突解决方案?

时间:2013-02-07 09:54:26

标签: maven

内容冲突的工件:

org.javassist:javassist:jar:3.17.1-GA&& javassist:javassist:jar:3.12.1.GA

前者来自Hibernate,后者来自Guava。两人最终都在最后的战争文件中。问题是经典的冲突解决机制失败,因为组ID不同。因此,两个罐子最终都会在最终的项目交付中完成。

我不能仅仅排除Guava在托管依赖项中的依赖性,因为该项目是一个多模块。有些模块使用Guava w / o Hibernate。他们会错过他们的javassist依赖。但如果我不这样做,那么“多余的”工件将会出现在项目的war文件中。

有没有办法告诉Maven这两个依赖项实际上是同一代码的两个不同版本?

1 个答案:

答案 0 :(得分:3)

我坚持使用以下解决方案:

  1. 在项目的主pom.xml中添加对javassist工件的显式依赖(以便所有子模块都继承此依赖关系)。
  2. 从Hibernate和Guava中排除javassist
  3. 最重要的是:添加一条评论,说明您需要javassist依赖的原因:)