2010-01-27 75 views
11

我有一個快照依賴Maven項目。 maven如何知道快照是否需要更新?它總是更新嗎?它是基於時間的嗎?基於校驗和的更新?我知道我可以強制更新但除此之外,它是如何檢查?Maven的快照更新

感謝, 傑夫

回答

16

根據該文檔,默認的是它將每天只更新一次。那是當一天的第一個構建被執行的時候。您可以使用snapshot-policy元素覆蓋此行爲。

  • 總是 - 當Maven啓動快照
  • 的較新版本從未經常檢查 - 永不檢查新版本的遠程。一旦關閉手動更新即可執行。
  • 每日(默認) - 檢查當天的第一次運行(當地時間)
  • 間隔:XXX - 檢查每一個XXX分鐘

http://maven.apache.org/maven-settings/settings.html

+6

此鏈接有點過時 - 我會嘗試http://maven.apache.org/settings.html#Repositories並搜索updatePolicy – 2011-07-07 16:18:13

+0

。@RoyTruelove真實的,但這並不能真正幫助下面是網頁上最相關的臺詞:「這個元素指定如何經常更新應該嘗試發生。 Maven會將本地POM的時間戳(存儲在存儲庫的Maven元數據文件中)與遠程進行比較。「至於究竟是什麼意思,它會打敗我,它是在一天中的第一次運行中執行它還是執行它從上次下載24小時? – Noremac 2014-08-12 17:53:11

+0

如果使用m2e插件,右鍵單擊項目 - > maven --->更新項目 - >選擇強制更新快照/發佈將會伎倆 – 2015-06-26 10:32:46

6

我有一個Maven項目快照依賴關係。如何行家知道如果快照需要更新?

Maven會將本地POM的時間戳(存儲在存儲庫的maven元數據文件中)與遠程進行比較。例如見hibernate-core-3.5.0-SNAPSHOT在JBoss的快照庫。

是否隨時更新?它是基於時間的嗎?基於校驗和的更新?

這依賴於repository或含有快照pluginRepositoryupdatePolicy。默認爲每天檢查(其它候選條件值總是間隔:X(其中X爲以分鐘爲單位的整數)或從未

當您使用快照內部下活躍的項目。開發中,爲內部存儲庫設置<updatePolicy>always</updatePolicy>非常常見。

+0

但是,如果您正在處理依賴於快照的項目b,並且您還在處理a,則下載快照將覆蓋您自己的更改 – 2011-05-26 15:41:27

+0

@AsafMesika這是事實, m2插件的eclipse有一個「工作區分辨率」功能,它只下載新的SNAPSHOTS,而不是在eclipse工作區中打開的項目。Cook的東西,我還沒有找到類似的netbeans解決方案 – bbaja42 2011-09-28 08:12:47