我有一個帶有子模塊的 Maven 戰爭專案。一個模塊用google-api-client,另一個用google-cloud-storage。我在下面繪制了它們的一些依賴項
A
|-google-api-client:jar:1.33.1
|-google-http-client-gson:jar:1.41.1
B
|-google-cloud-storage:jar:2.4.4
|-google-api-client:jar:1.33.1
|-google-http-client-gson:jar:1.41.2
打包大戰時,gson1.41.1和1.41.2都會被打包。我知道 maven 有一個最接近的規則來確定編譯時使用哪個 jar。但是當網路服務器加載我的專案時,我無法控制首先加載哪個 jar。所以我只想為每個 jar 保留一個較新的版本。
我知道我可以<exclusion>為依賴項添加標簽并添加一個新的依賴項來告訴 maven 使用特定版本的 jars。但是,我不確定這是否是最佳實踐,因為它需要我通過第三方庫的依賴關系。他們太多了。
有關如何正確處理多個版本的 jar 的任何建議?
uj5u.com熱心網友回復:
我推薦的一個好的做法是使用具有依賴收斂目標的強制插件。這樣你就不得不決定哪個版本將在類路徑上。當然,這可能需要額外的努力,因為您必須處理沖突(也可以通過設定排除項),但最終它已明確定義,您將獲得哪些版本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/440900.html
