Maven存储库URL正在超时并且构建正在进行中

时间:2012-03-02 01:08:05

标签: maven maven-3

似乎其中一个存储库暂时不可用,并且会发出如下警告:

[WARNING] Could not transfer metadata org.gbif:gbif-common:0.5-SNAPSHOT/maven-metadata.xml 
from/to eclipselink (http://ftp.ing.umu.se/mirror/eclipse/rt/eclipselink/maven.repo):
Error transferring file: Operation timed out

我没有在我的应用程序的pom文件中引用该存储库,但它来自下线存储库或依赖项目(?)。在我的浏览器中点击URL http://ftp.ing.umu.se会导致旋转进度条,最后是浏览器中的“无法连接到...”消息。

问题在于,对于每个工件,它会尝试该URL并在75秒后超时,然后继续。因此,我的构建将永远(超过一个小时和计数)。

有没有办法阻止它检查存储库或减少超时等等。到目前为止,谷歌搜索让我无处可去。

编辑:将maven作为mvn clean package -DskipTests=true

运行

1 个答案:

答案 0 :(得分:3)

您可以使用repository mirror将请求重定向到已知的良好存储库。实际上,建议您为所选的repo设置全局镜像“*”,以防止从pom文件中声明的某个随机存储库中获取代码。

〜/ .m2 / settings.xml的示例:

<settings>
  ...
  <mirrors>
    <mirror>
      <id>global</id>
      <name>Maven Central</name>
      <url>http://repo1.maven.org/maven2</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>

在此示例中,我使用Maven Central作为目标,但您可以将请求重定向到您想要的任何位置,例如私有存储库。如果必须从多个repo中获取代码,可以使用“!”创建异常。然后像你这样在你的设置中声明的repo id。

...
<mirrorOf>*, !otherRepo</mirrorOf>
...

这样可以防止将“otherRepo”重新发送到镜像目标。

当然,如果你需要一个真正只存储在这个胡思乱想的存储库中的工件,你仍然会运气不好。