我们有一个用于缓存的本地神器存储库设置。它在我们的项目中配置,但是当我查看构建过程的stdout时,我看到这样的行
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吗?
更新:发生了什么以及我做了什么:
mliebelt评论暗示我对我的解决方案:看起来我们的本地存储库在必须首先下载工件时才会缓慢回答。我将缓存配置为在请求pom时急切下载jar和源。这应该减少从其他地方下载的工件数量。
答案 0 :(得分:7)
Maven可以配置多个存储库。像在项目中一样添加存储库不会使您已配置的任何存储库失效。默认情况下,每个人都可以在Maven Central获取存储库。然后,Maven可以从任何可用的存储库中自由下载工件。
听起来你真正想要做的就是设置一个mirror。您可以在mirror
文件中配置settings.xml
:
<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存储库。