4

我们有一个用于缓存的本地工件存储库设置。它是在我们的项目中配置的,但是当我查看构建过程的标准输出时,我看到了这样的行

Downloading: http://ourserver/artifactory/our-repo/javax/transaction/jta/1.1/jta-1.1-sources.jar
Downloading: http://repo1.maven.org/maven2/javax/transaction/jta/1.1/jta-1.1-sources.jar
Downloaded: http://repo1.maven.org/maven2/javax/transaction/jta/1.1/jta-1.1-sources.jar (25 KB at 54.5 KB/sec)

所以看起来它正在尝试从本地存储库和 Maven Central 下载 jar,然后实际使用 Maven Central)。

如果我在浏览器中复制本地存储库的 url,我会毫无问题地得到 jar。

如果我检查人工制品的管理应用程序,我可以看到人工制品。

任何人都可以解释为什么要使用 Maven Central 吗?

更新:发生了什么,我做了什么:

orien 的回答解释了为什么 Maven Central 被访问。

mliebelt 评论向我暗示了我的解决方案:看起来我们的本地存储库在必须首先下载工件时响应缓慢。我将缓存配置为在请求 pom 时急切地下载 jar 和源。这应该会减少从其他地方下载的工件数量。

4

1 回答 1

7

Maven 可以配置多个存储库。正如您在项目中所做的那样,添加存储库不会使您已经配置的任何存储库失效。默认情况下,每个人都在 Maven 中心获取存储库。然后,Maven 可以从任何可用的存储库免费下载工件。

听起来你真正想做的就是设置一面镜子mirror您可以在settings.xml文件中配置 a :

<mirrors>
    <mirror>
        <id>our-server-repo</id>
        <name>our local repository</name>
        <url>http://ourserver/artifactory/our-repo</url>
        <mirrorOf>*</mirrorOf>
    </mirror>
</mirrors>

请注意,我们在mirrorOf元素中使用了通配符 (*)。这指定将通过指定的 URL 访问所有存储库。使用此配置,Maven 将仅访问您本地的 Artifactory 存储库。

于 2011-11-27T05:44:18.720 回答