2014-10-06 1697 views
12

我想知道究竟是什麼Maven的在-U相做。mvn -U究竟是如何工作的?

的參數排序強制檢查遠程倉庫更新,如果需要的話,更新在我們的項目中使用更新的依賴關係的本地Maven倉庫。

如上所述:

-U --update-snapshots Forces a check for updated releases and snapshots on remote repositories 

但是,究竟是做? Maven首先下載了所有的遠程倉庫,並在本地決定他們需要更新,或者決定不首先下載它們?是否有一些應該知道的角落案件?

我的Maven的版本是:

Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T16:51:42+03:00) 
Maven home: /usr/local/Cellar/maven/3.2.2/libexec 
Java version: 1.7.0_60, vendor: Oracle Corporation 
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "mac os x", version: "10.9.4", arch: "x86_64", family: "mac" 

回答

10

它只能通過您的項目中引用的假象或依賴關係來完成。

最後檢查時間戳存儲本地工件元數據(在你的本地倉庫)內,所以Maven可以應用不同多久檢查的基礎上的更新策略。快照的默認更新時間間隔是「每日」。

另見updatePolicy在Maven的settings.xml中遠程倉庫。

+0

感謝尤金。我仍然不確定檢查更新是如何完成的。你能否詳細說明一下? – Stas 2014-10-06 21:33:41

+6

更新會通過發送每一個工件遠程Maven倉庫的HTTP請求,然後比較Maven的本地緩存神器神器時間戳(又名本地Maven倉庫)進行檢查。 – 2014-10-07 14:07:33

+0

太好了,那正是我想知道的。 – Stas 2014-10-07 20:23:20