【问题标题】:In Maven 3 dependency:resolve -U keeps redownloading the same maven-metadata.xml over and over在 Maven 3 依赖项中:resolve -U 不断重新下载相同的 maven-metadata.xml
【发布时间】:2011-09-03 05:51:37
【问题描述】:

自从从 Maven 2 迁移到 Maven 3 后,我们遇到了一个问题:如果我们使用“-U”标志进行构建,与 Maven 2 相比,检查工件更新需要更长的时间。我不确定 Maven 是什么2 在这种情况下确实如此,但似乎 Maven 一遍又一遍地下载所有 maven-metadata.xml。

我正在使用以下 Maven 版本:

$ mvn --version
Apache Maven 3.0.3 (r1080300; 2011-03-10 19:10:36+0100)
Maven home: C:\Programme\apache-maven-3.0.3
Java version: 1.6.0_18, vendor: Sun Microsystems Inc.
Java home: C:\Programme\Java\jdk1.6.0_18\jre
Default locale: de_DE, platform encoding: Cp1252
OS name: "windows xp", version: "5.1", arch: "x86", family: "windows"

我已经重定向了'mvn dependency:resolve -U'的输出并上传到http://lenni.info/dependency_resolve.log

在其中你可以看到我正在构建的项目总共有 142 个依赖项(包括传递的依赖项),但日志有 6400 行。这似乎很多。

一个例子:如果你用

分析日志
cat dependency_resolve.log | grep mtcommons/maven-metadata.xml | wc -l

您可以看到 mtcommons 的 maven-metadata.xml(一个内部项目,几乎被我们所有的内部工件引用)被下载了 714 次。现在,我们确实有 3 个存储库(由 Nexus 管理),我知道必须检查所有存储库,但 714 次似乎太频繁了,不是吗?看来 Maven3 即使在单个构建中也不会缓存元数据,导致它多次重新下载相同的文件。

我不敢相信这是 Maven 3 默认行为,但我怀疑我们的配置错误,也可能在 Nexus 中。然而,经过密集搜索和大量谷歌搜索后,我束手无策。

如何让 Maven 每次构建只下载一次元数据文件?

【问题讨论】:

    标签: maven maven-3 maven-metadata


    【解决方案1】:

    https://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html#Maven3.xCompatibilityNotes-SnapshotUpdates

    看来这是故意的。

    让我们退后一步 - 它有多慢?您是否在本地存储库上镜像外部存储库?您正在使用什么远程 Maven 存储库管理器实现?有许多策略可以帮助缓解 Maven 回购管理器的缓慢...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 2020-07-06
      • 2020-04-30
      相关资源
      最近更新 更多