【问题标题】:How exactly mvn -U works?mvn -U 究竟是如何工作的?
【发布时间】:2014-10-07 05:12:18
【问题描述】:

我想知道 Maven 在 -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 maven-3


    【解决方案1】:

    仅对项目引用的工件或依赖项执行此操作。

    最后一次检查时间戳存储在本地工件元数据中(在您的本地 Maven 存储库中),因此 Maven 可以应用不同的策略多久检查一次基于此的更新。快照的默认更新间隔是“每天”。

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

    【讨论】:

    • 谢谢尤金。我仍然不确定检查更新是如何完成的。能详细点吗?
    • 通过将每个工件的 http 请求发送到远程 Maven 存储库,然后将工件时间戳与 Maven 的本地工件缓存(也称为本地 Maven 存储库)进行比较来检查更新。
    • 太好了,这正是我想知道的。
    猜你喜欢
    • 2011-06-26
    • 2021-08-15
    • 2012-06-08
    • 2011-10-11
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 2011-06-01
    相关资源
    最近更新 更多