为什么maven多次下载相同的工件?

时间:2016-05-24 13:28:53

标签: maven nexus

我运行maven构建,我看到多次下载相同的工件。从一个仓库成功下载后,尝试从另一个仓库下载。一些下载是(0 B,0.0 KB /秒)。

[INFO] Downloading: https://p-nexus.mycompany.com/nexus/content/repositories/Myproject-group/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
[INFO] Downloaded: https://p-nexus.mycompany.com/nexus/content/repositories/Myproject-group/aopalliance/aopalliance/1.0/aopalliance-1.0.jar (5 KB at 59.8 KB/sec)
[INFO] Downloading: https://p-nexus.mycompany.com/nexus/content/repositories/public/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
[INFO] Downloaded: https://p-nexus.mycompany.com/nexus/content/repositories/public/aopalliance/aopalliance/1.0/aopalliance-1.0.jar (0 B at 0.0 KB/sec)
[INFO] Downloading: http://repo.spring.io/ext-release-local/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
[INFO] Downloading: http://repo.spring.io/milestone/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
[INFO] Downloading: http://repo.spring.io/snapshot/aopalliance/aopalliance/1.0/aopalliance-1.0.jar

存储库配置:

 <repositories>
    <repository>
        <id>Myproject-group</id>
        <name>Myproject-group</name>
        <layout>default</layout>
        <url>https://p-nexus.mycompany.com/nexus/content/repositories/Myproject-group/</url>
        <snapshots>
            <enabled>false</enabled>
            <updatePolicy>never</updatePolicy>
        </snapshots>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
        </releases>
    </repository>
</repositories>

3 个答案:

答案 0 :(得分:3)

您可以通过让Maven镜像所有存储库请求来强制Maven使用单个存储库。存储库必须包含所有所需的工件,或者能够将请求代理到其他存储库。当使用内部公司存储库和Maven Repository Manager代理外部请求时,此设置最有用。

要实现此目的,请将mirrorOf设置为*。

<settings>
  ...
  <mirrors>
    <mirror>
      <id>internal-repository</id>
      <name>Maven Repository Manager running on repo.mycompany.com</name>
      <url>http://repo.mycompany.com/proxy</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>

更多详情here

希望这会有所帮助。

答案 1 :(得分:2)

它没有多次下载。它无法在第一个存储库中找到它,所以它正在尝试<repositories/>列表中的下一个存储库。

答案 2 :(得分:2)

如果您查看日志信息,您会发现它没有多次下载。

0 B at 0.0 KB/sec

正如您所看到的,它们的路径是不同的,即使jar文件相同,并且在第二个INFO的末尾,它表示PERCENT := % foo: results(10$(PERCENT)).dat gnuplot config.plt ,这意味着它没有被下载。