如何阻止Maven下载maven-metadata.xml以获取我在repo中已有的工件?

Dav*_*ave 4 artifacts maven maven-metadata

我正在使用Maven 3.2.我在我的pom.xml文件中有这种依赖(一个WAR项目)

            <dependency>
                    <groupId>joda-time</groupId>
                    <artifactId>joda-time</artifactId>
                    <version>1.6.2</version>
                    <scope>provided</scope>
            </dependency>
Run Code Online (Sandbox Code Playgroud)

每当我为我的pom运行任何阶段(例如"mvn install")时,应用程序总是尝试下载有关依赖关系的一些元数据......

Downloading: http://repo.spring.io/milestone/joda-time/joda-time/maven-metadata.xml
Run Code Online (Sandbox Code Playgroud)

我怎么告诉Maven停止这样做?我已经将神器缓存在我当地的Maven回购中.

谢谢, - 戴夫

jan*_*Dro 7

可能需要明确指定更新策略.看到这个答案:为什么Maven每次都下载maven-metadata.xml?

<pluginRepositories>
<pluginRepository>
    <id>central</id>
    <url>http://gotoNexus</url>
    <snapshots>
        <enabled>true</enabled>
        <updatePolicy>daily</updatePolicy>
    </snapshots>
    <releases>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
    </releases>
</pluginRepository>
Run Code Online (Sandbox Code Playgroud)

  • 好的,它确实有效。我一开始没有意识到,我自己的 POM 没有版本范围,但一些传递性的 POM 有。我必须在 POM 的“dependencyManagement”部分修复它们的版本,最后 Maven 停止尝试下载元数据文件。我写这篇文章是为了让大家遇到同样的情况,而不是仅仅删除我之前的评论。 (2认同)

Rob*_*lte 6

这意味着在您的依赖树中的某个地方使用了 SNAPSHOT 或版本范围(直接或作为传递依赖)。对于这两种情况,解决方案是相同的:将版本锁定到特定版本。您是将其锁定为直接依赖项还是在dependencyManagement 中?