在Maven 3 dependency中:resolve-U不断地重复下载相同的Maven-metadata.xml

在Maven 3 dependency中:resolve-U不断地重复下载相同的Maven-metadata.xml,maven,maven-3,maven-metadata,Maven,Maven 3,Maven Metadata,从Maven2迁移到Maven3之后,我们遇到了一个问题:如果我们使用“-U”标志构建,那么与Maven2相比,检查工件更新需要更长的时间。我不确定Maven 2在本例中做了什么,但似乎Maven一遍又一遍地下载所有Maven元数据.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

从Maven2迁移到Maven3之后,我们遇到了一个问题:如果我们使用“-U”标志构建,那么与Maven2相比,检查工件更新需要更长的时间。我不确定Maven 2在本例中做了什么,但似乎Maven一遍又一遍地下载所有Maven元数据.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”的输出并上载到

在其中,您可以看到我正在构建的项目总共有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 repo manager实现?有许多策略可以帮助缓解maven回购经理的缓慢行为