簡體   English   中英

Maven依賴沖突

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM