2016-03-23 16 views

回答

5

當指定存儲庫元素時,爲什麼我們需要false/true?

我們需要這樣做,如果我們想要一個存儲庫僅用於發佈版本,例如,另一個僅用於SNAPSHOT版本。

當某些版本(如SNAPSHOT)僅在存儲庫(已部署但CI作業爲例)中可用時,這是企業Maven存儲庫(即Nexus,Artifactory,Archivia)的常見用例,只能在另一個存儲庫中使用。釋放PROD內容的CI作業應僅使用後者的存儲庫,不要使用/允許任何SNAPSHOT版本,否則將破壞構建(強制構建可重複性和良好實踐)。

official Maven Settings documentation

發佈快照:這些是每種類型的神器,發佈或快照的政策。有了這兩套,POM就有能力在單個存儲庫內改變每種類型的策略,使其獨立於另一種。例如,可能決定僅啓用快照下載,可能用於開發目的。

啓用truefalse這個存儲庫是否被用於相應類型(releasessnapshots)運行。


當有多個存儲庫,其中的信息庫要搜索的神器?工件如何解決?

聲明的順序將影響Maven使用的查找順序。檢查此official Maven ticket提供修復從版本3.0上的正確行爲。

  • MNG-4400庫順序的settings.xml沒有神器分辨率

它是如何影響依賴特定版本的過程中尊重? (1.2.3-SNAPSHOT,1.2.3,1.2。3-RELEASE)

合併上面的兩個答案,這取決於聲明的順序和哪個存儲庫允許哪種類型的構件(快照與否)。


更多參考:

+0

快照版本神器將搜索快照啓用庫中庫聲明的順序? – Selva

+0

@Selva是的,沒錯。此外,SNAPSHOTs將根據'updatePolicy'元素值更新或通過命令行'-U'選項強制更新 –