我有一個稱爲A的maven項目,它依賴於另一個名爲B.jar的jar文件,A和B.jar具有相同的類但具有不同的版本。在maven構建期間,B.jar中的類總是與A重疊。讓maven只用A和B中的類的方法是什麼?如何防止jar中的類與maven中的當前項目重疊
1
A
回答
3
我認爲你有一個關於你的Maven模塊的概念真正的問題。
JAR的設計目的不是爲了排除某些類被其他JAR使用時的類。
爲什麼在B JAR中,你不提供一種在運行時選擇要使用的實現類的方法嗎? 你可以通過多種方式來允許它:一個屬性,一個實現的接口等......
通過這種方式,你可以指定在客戶端應用程序中使用的類。
您應該根據客戶端類來實現API,而不是覆蓋類。
這並不意味着你不能用Maven做它,但它看起來錯綜複雜,不自然,容易出錯並且設計不好。
以下是使用Maven解決它的一些想法。
你可以配置Maven的JAR-插件指定類的包裝罐子排除:
433Here是參考文檔。
但是通過這樣做,無論如何這個類在JAR中都是不可用的。
如果在B
中需要替換的類別,它會使B JAR不能單獨工作。
您可以將JAR打包爲specific classifier以避免此問題。
你應該有這麼一個經典的jar包含所有東西,jar-for-a包含了除了這個着名的重複類之外的所有東西。
但是真的,我認爲你應該真的考慮你的設計。
相關問題
- 1. 如何防止Eclipse中的Tomcat +運行當前類的,而不是項目(Vaadin)
- 2. 如何防止qtip重疊
- 3. 如何防止maven複製EAR文件中的jar文件?
- 4. 如何防止XSL中的重複項?
- 5. 複合/模板在Maven項目中的jar中停止工作
- 6. 防止與arbor.js重疊的節點
- 7. 如何防止我的jQuery庫重疊?
- 8. 如何防止div的垂直重疊
- 9. 如何防止我的TextView重疊?
- 10. 防止重疊div中的CSS
- 11. 防止JGraphX中的節點重疊
- 12. Maven項目中的Jar簽名策略
- 13. 如何防止重複項目listView C#
- 14. 防止setInterval的重疊
- 15. 防止UIViews重疊
- 16. 如何防止SQL數據庫中的類似(重複)條目?
- 17. 查找包含Maven項目中的類文件的jar包
- 18. 防止重疊與CSS轉換
- 19. 如何防止標籤重疊
- 20. 如何防止Bootstrap 3列重疊
- 21. 如何防止重複項
- 22. 如何防止JavaScript中的標籤重疊
- 23. 如何防止jQuery手機中的導航欄重疊內容?
- 24. 如何防止在Swift中基於折線的UIImage重疊?
- 25. 如何防止重疊主要內容中浮動的內容?
- 26. 如何防止ipython筆記本中的單元格重疊
- 27. 如何防止QGridLayout中的小部件重疊?
- 28. 如何防止兩個div中的浮動內容重疊?
- 29. 如何防止SQL中的日期重疊?
- 30. 如何防止從jar加載類
我只是將文件從B複製到A來解決問題 – georgewhr