2011-06-14 127 views
4

我有一個幾年前建成的Maven項目,現在我需要做一些更新。我的項目的一個依賴項在其POM中列出的Maven存儲庫不再存在。我現在得到構建失敗。Maven資源庫的繼承和覆蓋

我會想我的POM或Settings.xml中的存儲庫列表會勝過依賴項的POM中列出的任何存儲庫;否則Maven會在無法連接到已停用的存儲庫後嘗試存儲庫。相反,它只是因構建失敗而爆炸。

此外,我已經在我的本地存儲庫中具有所需的依賴項。我會另外想到Maven會使用它。

有沒有辦法重寫繼承的存儲庫清單,或告訴Maven在回購問題的情況下攜帶?

回答

0

如果您依賴的工件是快照版本,那麼maven會在您每次構建時檢查新快照,這就是爲什麼將您的依賴關係鎖定到發佈版本的好習慣。

您可以通過在settings.xml中定義<mirror>來「覆蓋」存儲庫聲明。

參見http://maven.apache.org/settings.html#Mirrors

我通常設置一個本地託管倉庫管理器(優選nexus),然後定義mirrorOf(*)=本地回購經理/ URL。
Nexus允許將多個回購按照預定義的搜索順序進行分組。 Nexus回購可以在本地託管或緩存/代理公共回購。
我通常在集團的前面有一個本地託管的第三方回購商店,在那裏我可以存儲未在公開回購庫中發佈的工件。