2017-05-31 93 views
0

我在本地运行JFrog's Artifactory,在此处我将工件上传到默认的libs-snapshot-local存储库。还配置为使用JCenter作为远程存储库。
Maven是配置了以下的settings.xml:Maven本地镜像

<settings> 
    <mirrors> 
     <mirror> 
      <id>jcenter</id> 
      <name>jcenter</name> 
      <url>http://172.18.0.1:8081/artifactory/jcenter</url> 
      <mirrorOf>*,!libs-snapshot-local</mirrorOf> 
     </mirror> 
     <mirror> 
      <id>libs-snapshot-local</id> 
      <name>libs-snapshot-local</name> 
      <url>http://172.18.0.1:8081/artifactory/libs-snapshot-local</url> 
      <mirrorOf>libs-snapshot-local</mirrorOf> 
     </mirror> 
    </mirrors> 

    <profiles> 
     <profile> 
      <repositories> 
       <repository> 
        <id>jcenter</id> 
        <name>jcenter</name> 
        <url>http://172.18.0.1:8081/artifactory/jcenter</url> 
        <snapshots><enabled>false</enabled></snapshots> 
       </repository> 
       <repository> 
        <id>libs-snapshot-local</id> 
        <name>libs-snapshot-local</name> 
        <url>http://172.18.0.1:8081/artifactory/libs-snapshot-local</url> 
        <snapshots><enabled>true</enabled></snapshots> 
       </repository> 
      </repositories> 

      <pluginRepositories> 
       <pluginRepository> 
        <id>jcenter</id> 
        <name>jcenter</name> 
        <url>http://172.18.0.1:8081/artifactory/jcenter</url> 
        <snapshots><enabled>false</enabled></snapshots> 
       </pluginRepository> 
       <pluginRepository> 
        <id>libs-snapshot-local</id> 
        <name>libs-snapshot-local</name> 
        <url>http://172.18.0.1:8081/artifactory/libs-snapshot-local</url> 
        <snapshots><enabled>true</enabled></snapshots> 
       </pluginRepository> 
      </pluginRepositories> 
     </profile> 
    </profiles> 
</settings> 

当我运行编译过程不幸的Maven似乎从JCenter拉的一切:偶数虽然这神器,根据

[INFO] Downloading: http://172.18.0.1:8081/artifactory/jcenter/org/apache/maven/plugins/maven-javadoc-plugin/2.10.4/maven-javadoc-plugin-2.10.4.jar 

Artifactory,在libs-snapshot-local之内。

它怎么没有先使用本地的,有没有办法解决这个问题?

回答

0

我不完全清楚你想要达到的目标。

通常,您不会在settings.xml中设置两个镜像,而是使用您在Artifactory中定义的存储库组(也称为虚拟存储库)。在此组中,您可以设置存储库的顺序,以便首先询问您最喜欢的存储库。通常情况下,首先放置“本地”存储库,然后放置“远程”存储库(我使用的是Nexus,所以我无法告诉你在Artifactory中如何设置)。尽管如此,如果你不遵循这个建议,Artifactory会缓存已经被请求的工件(并且你的Maven当然也会在你的计算机上缓存工件),这并没有太大的危害。

+0

原因是因为当我在Artifactory中使用虚拟存储库时,它似乎甚至会缓存所有内容 - 尽管它对于远程存储库是关闭的。这是我根本不想要的,因为我正在使用它来做一些我明确测试所需时间的东西。另一种选择是使用多个Artifactory实例,但确实会给系统带来沉重的负担。我会尝试将其他默认存储库链接到libs-snapshot-local,并查看是否会更改某些内容。 – Hering

+0

为什么要测试工件下载需要多长时间? –

+0

Artifactory中的缓存或存储库管理器中的缓存是有意的,并且是其中的基础概念之一?你想解决什么样的问题? – khmarbaise