12
A
回答
5
一般而言,建議在給定時間在類路徑中只有一個版本的依賴關係。這樣做可以讓你準確知道在運行時會使用哪個版本的類。
爲了避免版本衝突試圖指定這樣你的依賴:
<dependency>
<groupId>commons-daemon</groupId>
<artifactId>commons-daemon</artifactId>
<version>1.0.1</version>
<exclusions>
<exclusion>
<groupId>some_group</groupId>
<artifactId>some_artifact</artifactId>
</exclusion>
</exclusions>
</dependency>
,你需要用2.5版本規定相沖突的神器groupId
和artifactId
。
3
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
依賴調解 - 這決定了遇到的工件的多個版本時系統會使用的依賴版本。目前,Maven 2.0只支持使用「最接近的定義」,這意味着它將在依賴關係樹中使用最接近依賴項的版本。您可以通過在項目的POM中明確聲明版本來保證版本。請注意,如果兩個依賴版本在依賴關係樹中處於相同深度,直到Maven 2.0.8未定義哪一個會獲勝,但是自Maven 2.0.9以來,它是聲明中的順序:第一個聲明獲勝。
- 「最接近的定義」意味着所使用的版本將是依賴關係樹中與您的項目最接近的版本,例如。如果將A,B和C的依賴關係定義爲A→B→C→D 2.0和A→E→D 1.0,則在構建A時將使用D 1.0,因爲從A到D的路徑通過E更短。你可以明確地添加一個依賴於d 2.0 A至強制使用d 2.0
這聽起來像一個2.5版正在被另一個依賴傳遞地包括在內。這使得版本4.3和2.5的長度相同。
- 項目 - >父 - > 4.3
- 項目 - >相關 - > 2.5
通過在項目中明確規定2.5的依賴它就會成爲最近和覆蓋任何其他版本。
相關問題
- 1. 覆蓋父pom中指定的java版本的不同方法
- 2. pom子項目中的父pom版本
- 3. 禁用在父pom中定義的maven版本插件
- 4. Python SMTPD庫覆蓋版本
- 5. 在Maven中從父POM覆蓋模塊屬性
- 6. css覆蓋版本
- 7. 如何找出父母的pom版本?
- 8. Maven的:如何讀取父POM版本
- 9. 覆蓋部署maven版本庫部署
- 10. 反應:在覆蓋時調用函數的父版本
- 11. IMobileServiceSyncHandler - 覆蓋本地版本
- 12. Maven 3:覆蓋POM中的命令行
- 13. 從命令行覆蓋在pom pluginManagement中定義的Maven插件配置
- 14. 父POM的託管版本不尊重版本
- 15. 如何覆蓋子pom的Maven 3.0父配置文件屬性?
- 16. 如何覆蓋從子pom的Maven 3.0父插件屬性
- 17. 父POM採取我在模塊版本中給出的相同版本
- 18. 覆蓋子環境中父上下文中定義的bean
- 19. 避免覆蓋GAE版本
- 20. Maven 3.3覆蓋版本
- 21. Ebay API版本覆蓋?
- 22. 如何在IntelliJ中使用'show diff'時覆蓋版本庫?
- 23. 覆蓋在css文件中的定義
- 24. 從父pom覆蓋配置文件依賴
- 25. 覆蓋對象的定義,並用它在父
- 26. 如果在POM中只有父版本,該怎麼辦?
- 27. 在多個項目中管理Spring Boot父POM版本
- 28. 在pom之外指定工件版本
- 29. 覆蓋Realm數據庫中的模式版本
- 30. Linux軟件安裝 - 覆蓋./configure中的庫版本
版本2.5是否需要您自己的代碼或某個插件或依賴項? –
由依賴和代碼也。 – Rndm