5

我正在使用 Maven 来处理 Java 项目。我认为只有在第一次编译时才需要 Internet 连接才能从远程存储库下载所需的库,但每当我编译代码时都会收到几条下载消息。像这样的消息:

Downloading: http://repo.maven.apache.org/maven2/org/eclipse/core/resources/maven-metadata.xml
Downloading: http://repository.springsource.com/maven/bundles/external/org/eclipse/core/resources/maven-metadata.xml
Downloading: http://repository.springsource.com/maven/bundles/release/org/eclipse/core/resources/maven-metadata.xml
Downloading: https://oss.sonatype.org/content/repositories/snapshots/org/eclipse/core/resources/maven-metadata.xml

为什么会发生这种情况以及如何防止它发生?

4

3 回答 3

5

当没有为工件指定版本信息时,通常会发生这种情况。

maven-metadata.xml 是一个文件,其中包含<groupId><artifactId>以及有关可用于依赖项的各种版本的版本信息。

如果在 pom.xml 中未指定工件的版本,maven 会下载此元数据文件以检查本地存储库是否包含最新版本。

因此,您可以通过在 pom.xml 文件中指定工件的版本信息来避免此下载,而不是更改可能影响将来其他 jar 文件更新过程的更新策略。

于 2012-08-13T12:50:15.297 回答
4

最重要的是开始使用存储库管理器,进一步检查settings.xml 文件中的配置,该文件可以配置为检查远程存储库(更新策略)。

于 2012-08-09T14:37:10.423 回答
1

1) 检查您的本地存储库中是否确实有这些工件 2) 检查存储库配置,以便您仅使用存储库来下载版本。

<project>
    ...
    <repositories>
        <repository>
            <id>my-repo1</id>
            <name>your custom repo</name>
            <url>http://jarsm2.dyndns.dk</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    ...
</project>

3)您可以强制 maven 仅使用带有 -o 选项的本地存储库:

mvn -o clean package
于 2012-08-09T14:37:35.093 回答