mvn -U究竟是如何工作的?

Joh*_*nny 18 maven-3 maven

我想知道Maven在-U阶段究竟做了什么.

参数排序强制检查远程存储库的更新,如果需要,使用我们项目中使用的更新依赖项更新本地maven存储库.

如上所述:

-U --update-snapshots Forces a check for updated releases and snapshots on remote repositories
Run Code Online (Sandbox Code Playgroud)

但是,这究竟是怎么做到的?是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"
Run Code Online (Sandbox Code Playgroud)

Eug*_*hov 14

它仅针对项目引用的工件或依赖项进行.

最后一个检查时间戳存储在本地工件元数据中(在本地Maven存储库中),因此Maven可以根据需要应用不同的策略来检查更新.快照的默认更新间隔为"每日".

另请参阅Maven的settings.xml中的远程存储库的updatePolicy.

  • 通过向远程Maven存储库发送每个工件的http请求,然后将工件时间戳与Maven的本地工件缓存(也称为本地Maven存储库)进行比较来检查更新. (8认同)