我們有一個大型的多模塊maven項目。爲了提高開發效率,我們最近開始將快照部署到遠程存儲庫(通過中央構建),並引入了maven配置文件,這意味着用戶只需檢出並構建子模塊子集併爲其餘部分創建快照。我們還將遠程存儲庫的更新策略設置爲「從不」,以確保在我們想要更新本地快照時它是明確的。典型的命令就是這樣; mvn -Pref -U乾淨安裝。允許本地構建的快照覆蓋更近期的遠程快照
現在,在maven反應器中,配置文件中定義的模塊的構建完美地工作,maven使用它們的依賴關係的快照,包括從遠程存儲庫下載任何更新的數據(重要說明;以確保我們有一致的集合的快照,我們的中央部署是來自我們項目的所有模塊快照,即使其中只有幾個已經改變)。
當maven將依賴關係解析回配置文件外存在的模塊中的本地構建模塊時,如果快照自該模塊構建後已遠程部署,則maven將此視爲更新的版本並繼續下載並覆蓋本地構建的快照。這可能會導致其他模塊期望在本地更改的模塊中斷。
基本上我想有一個像選擇「使用本地內置快照」的所有模塊中我的個人資料在任何遠程快照,即使時間戳指示遠程快照是更近一些。
其他人在這種情況下做了什麼?
感謝,
保羅
'這可能會導致其他模塊期望在本地更改的模塊出現中斷。如果您有本地更改的模塊 - 只需編譯它,您將在本地存儲庫中擁有最新的快照,並將用於構建。或者我不明白什麼? –
這的確是我所做的。這個問題似乎出現時,說一個後來的模塊依賴於這個本地構建的模塊。此時Maven會檢查遠程快照是否具有比本地快照更晚的時間戳,如果是,請將該快照下載並安裝到本地存儲庫中,以覆蓋本地構建的模塊。 –
順便說一句,我明白,這個問題的一部分是,我在我的中央構建部署所有快照,即使並非所有這些都改變了..我不知道如何設置一個構建/部署,可以智能部署只改變模塊 –