mvn -U究竟是如何工作的?
问题描述:
我想知道究竟是什么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"
答
它只能通过您的项目中引用的假象或依赖关系来完成。
最后检查时间戳存储本地工件元数据(在你的本地仓库)内,所以Maven可以应用不同多久检查的基础上的更新策略。快照的默认更新时间间隔是“每日”。
另见updatePolicy在Maven的settings.xml中远程仓库。
感谢尤金。我仍然不确定检查更新是如何完成的。你能否详细说明一下? – Stas 2014-10-06 21:33:41
更新会通过发送每一个工件远程Maven仓库的HTTP请求,然后比较Maven的本地缓存神器神器时间戳(又名本地Maven仓库)进行检查。 – 2014-10-07 14:07:33
太好了,那正是我想知道的。 – Stas 2014-10-07 20:23:20