我剛剛注意到,我的戰爭包含woodstox-core-asl-4.4.1.jar
和woodstox-core-5.0.2.jar
。它們是同一個庫的兩個不同版本,但庫改變了groupId和artifactId。此外,我的戰爭中包含兩個作爲我的項目的兩個不同模塊的傳遞依賴項。Maven依賴別名
我知道我可以使用exclusions
來刪除舊版本的庫,但在這種情況下,我還應該明確地「包含」新版本,以防單獨使用模塊(這不與另一個包括woodstox-core-5.0.2.jar
)。
我不喜歡這個解決方案。有沒有什麼辦法可以聲明woodstox-core
是woodstox-core-asl
的別名,這樣Maven只包含其中的一個罐子?
一個類似的問題影響老的Spring 2.x,它發佈了所有功能於一身的工件和較小的分離的工件。不過,我認爲最常見的問題是與修改groupId和/或artifactId的工件有關的問題。
我發現了一個有關工件重定位的Maven指南:https://maven.apache.org/guides/mini/guide-relocation.html,但它描述了工件發佈者的過程,而不是用戶。我想伍德斯托克斯的作者並沒有遵循它。 – Pino
Maven工件重定位是另一回事。它在您決定不再需要爲庫使用相同的工件座標時使用。您可以更改'groupId','artifactId','version'和其他一些工件座標。這是作爲圖書館的所有者和部署者在服務器端執行的。如果您只是使用庫的開發人員,而對於您來說這是第三方工件,那麼您無法將其用於所需的「別名」。 – carlspring