2015-03-31 120 views
1

儘管我知道mvn install -U用於更新快照,並且它從遠程存儲庫更新所有內容,如從構建日誌中看到的,但我無法理解它強制更新哪個部分。因爲我的理解是,即使mvn install即使存在於本地存儲庫中(即當maven用於更新快照的內部計時器到期時),它也會從遠程存儲庫中選取內容。mvn install -U和mvn install有什麼區別?

以上描述是否準確或者我誤解了更新快照的使用?

+0

另請參閱http://stackoverflow.com/questions/29020716/maven-what-does-u-update-snapshots-really-do/29020990#29020990 – Alexander 2015-03-31 13:50:41

回答

1

Maven正根據間隔檢查SNAPSHOT工件的更新。默認情況下每天都會進行檢查。這意味着,如果在早上您獲得了SNAPSHOT的更新,而另一個版本在遠程存儲庫的下午可用,則明天之前您將無法獲得它。

-U即使未達到更新間隔,選項也會強制檢查SNAPSHOT更新。

一個說明添加,雖然在mvn -h-U的描述

強制檢查更新的發佈和快照遠程倉庫

基礎上,我以前的經驗,版本是從未檢查更新。即我們將始終依賴之前檢索的任何版本。

+0

我不知道你使用的是哪個版本,但在3.2.5中,他們將描述更改爲「強制檢查遠程存儲庫中缺失的版本和更新的快照」(這更準確)。 – 2015-03-31 09:29:47

+0

@JoachimRohde我一直在使用Maven 2.0.x到3.0.5,並且發現這個消息誤導了很久。很高興知道該消息在更高版本中得到修復:) – 2015-04-01 04:22:39

0

默認情況下,maven會檢查SNAPSHOT構件的更新副本,即從遠程存儲庫獲取SNAPSHOT版本的相關構件(例如1.0-SNAPSHOT)。此選項強制Maven檢查遠程存儲庫中的所有快照,並在本地存儲庫過期時更新本地存儲庫。

+0

區別不在於更新/所有快照。我認爲這個答案是錯誤的 – 2015-04-01 04:23:48

相關問題