2013-02-07 78 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代碼)。 –