2013-02-07 23 views
4

文物相互矛盾的内容:使用不同组ID的依赖冲突解决?

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

前者来自Hibernate和番石榴后者。两者都在最后的战争文件中结束。问题是经典的冲突解决机制失败,因为组ID是不同的。所以这两个罐子都会在最终的项目交付中结束。

因为项目是一个多模块,所以我不能仅仅排除管理依赖项中的Guava依赖项。一些模块使用Guava w/o Hibernate。他们会错过他们的javassist依赖。但是如果我没有在项目的战争文件中弹出“过剩”的神器,

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

+4

我想补充在此神器到项目的主pom.xml中显式依赖,并从番石榴排除双方和休眠。 –

+0

@AndrewLogvinov为什么不能发布一个答案?这个建议听起来不错。 –

+1

+1告诉我混蛋藏在你答案第一行的地方! :D – avalancha

回答

3

我用以下解决方案坚持:

  1. 添加显式依赖于javassist神器在你的项目的主要的pom.xml(使所有子模块继承了这种依赖性)。从Hibernate和Guava中排除javassist
  2. 最重要的是:添加评论,说明为什么你需要javassist依赖:)
+0

我为什么不自己想这个?必须是头脑风暴!谢谢 ! :-) –

+0

@JanGoyvaerts不客气:) –

+0

这帮了我。另外,要小心javassist版本,特别是如果您使用泛型。我被困在我[在我的博客中描述]的问题中(http://tomaszalusky.blogspot.cz/2015/03/kam-az-muze-vest-konflikt-maven.html)(在捷克,但从附件Java代码)。 –