2017-05-31 87 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