maven - 在 Maven 3 依赖 :resolve -U keeps redownloading the same maven-metadata. xml 一遍遍

标签 maven maven-3 maven-metadata

自从从 Maven 2 转移到 Maven 3 以来,我们遇到了一个问题:如果我们使用“-U”标志构建,与 Maven 2 相比,检查 Artifact 更新需要更长的时间。我不确定 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(一个内部项目,我们几乎所有的内部 Artifact 都引用了它)的 maven-metadata.xml 被下载了 714 次。现在,我们确实有 3 个存储库(由 Nexus 管理),我知道必须检查所有存储库,但 714 次似乎太频繁了,不是吗?即使在单个构建中,Maven3 似乎也不会缓存元数据,导致它多次重新下载相同的文件。

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

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

最佳答案

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

看来这是故意的。

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

关于maven - 在 Maven 3 依赖 :resolve -U keeps redownloading the same maven-metadata. xml 一遍遍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6149939/

相关文章:

Maven 更改包名称的技巧

maven - Maven 范围如何通过 ivy 映射到 ivy 配置

部署到 nexus 时 maven-metadata.xml 未更新

java - 自定义注释处理、生成文档和 Maven 3

maven - 是否有显示插件依赖树的 Maven 插件?

maven - maven 3 中 maven-metadata.xml 的架构或引用(特别是 <latest/>、<release/>)?

java - maven 3如何判断快照是否更新?

java - log4j:WARN 找不到记录器的附加程序 (org.springframework.web.context.support.StandardServletEnvironment)

java - 使用 spring 的简单嵌入式数据库

spring-boot - Neo4j 无法将 java.lang.Long 字段 model.Authority.id 设置为 model.Authority