[英]Maven Dependency Conflict
由一些模塊組成的maven項目。 我的一個模塊是使用谷歌版本11.0.2
番石榴依賴。 現在我正在我的項目中集成另一個模塊,該模塊也使用番石榴但版本14
。
所以我希望新模塊使用番石榴版本14
但剩下的項目使用番石榴版本11.0.2
。 我嘗試將guava的<exclusion></exclusion>
添加到新模塊中,但它不起作用。
任何解決此問題的提示。
更新:@Guillaume Darmont的答案解決了不同模塊的問題。 但現在我的問題是,新模塊有2個依賴,其中一個是使用guava 11.0.2
而另一個是使用14.0
。 如何管理這個。 我們可以在模塊的pom中單獨指定它應該使用哪種版本的番石榴。
mvn dependency:tree
命令將幫助確定哪個模塊帶來了Guava 14 jar文件。
據我所知,您可以在新模塊pom.xml中為guava
添加<dependencyManagement>
:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>14.0.1</version>
</dependency>
</dependencies>
</dependencyManagement>
首先嘗試mvn dependency tree
並檢查輸出11.0.2
可能從多個項目依賴項中被傳遞引用,並且您需要直接/間接地向所有依賴項添加排除,下拉您特定的番石榴版本試圖排除。
其次,解決這場沖突可能不是直截了當的。 看看版本號轉換(11到14)聽起來像是一個重大過渡,你可能有更好的機會保留14版本並排除11個東西。
如果版本更改與您的應用程序不兼容,您幾乎沒有選擇,只能使用OSGi
東西來確保您可以在項目中運行相同庫的不同版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.