2012-06-21 139 views
1

我在一個組織中支持Archiva內部存儲庫,其中一些構建環境無法訪問開放互聯網來獲取依賴關係。我認爲我可以將Archiva配置爲一切外部鏡像(mirrorOf設置爲「external。* ,! snapshots」),並使用代理進行設置,以便如果我的某個構建版本要求某些不在Archiva中的內容,它將使用代理來從我使用代理設置的外部源獲取依賴關係。之後,它將被緩存在Archiva中,而不必從外部獲取。maven本地存儲庫代理外部

因此,我在我的Archiva配置代理,sonatype(幾個),基本中央,Cloudera for Hadoop東西等代理;但我無法找到一種配置,使我的構建不會直接嘗試直接訪問外部源(他們無法訪問),而是通過使用代理來滿足Archiva中尚未存在的內容。

是否有一些我在這裏失蹤的技巧配置?或者我需要切換到Artifactory或Nexus來獲得這種功能?

回答

2

您需要在每個構建環境上設置maven設置以指向您的archiva實例。
例如,在$的user.home/.m2目錄/ settings.xml中

<mirror> 
    <id>InternalMirror</id> 
    <mirrorOf>*</mirrorOf> 
    <name>Internal Mirror.</name> 
    <url>http://archivaserver/archivaPath/</url> 
</mirror> 

我以前沒有使用過Archiva,但我已經使用Nexus

+0

這是我第一次嘗試。我想我應該提到這一點;我剛開始回答問題,發現很多人在提交問題前都沒有做過調查。我已經嘗試了數週,數百種方法。根本沒有工作;他們要麼直接進入外部源(並且由於防火牆而失敗),要麼Archiva不會嘗試通過我配置的代理來查找文件。 –

+0

不妨看看nexus是否有更好的表現,你可以很快做一個默認設置,然後應用你的代理設置。 – crowne

1

切換到一個承上啓下這樣做成功將默爾最好。

我重視其可用於一個承上啓下的settings.xml ....

<?xml version="1.0" encoding="UTF-8"?> 
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
         http://maven.apache.org/xsd/settings-1.0.0.xsd"> 
    <localRepository>F:\m2\repository</localRepository> 

    <pluginGroups> 
       <pluginGroup>org.codehaus.sonar</pluginGroup> 
     </pluginGroups> 


    <proxies> 
     <proxy> 
      <active>true</active> 
      <protocol>http</protocol> 
      <host>your-host-id</host> 
      <port>8080</port> 
     </proxy> 
    </proxies> 

    <mirrors> 
    <mirror> 
     <id>nexus</id> 
     <mirrorOf>*,!sonar</mirrorOf> 
     <url>http://nexus-repo-url/content/groups/public</url> 
     <name>Nexus</name> 
    </mirror> 
    </mirrors> 
    <profiles> 
     <profile> 
      <id>NexusProfile</id> 
      <activation> 
       <activeByDefault>true</activeByDefault> 
       <jdk>1.5</jdk> 
      </activation> 
      <repositories> 
       <repository> 
        <snapshots> 
        <enabled>true</enabled> 
        </snapshots> 
        <releases> 
        <enabled>true</enabled> 
        </releases> 
        <id>nexus</id> 
        <name>default-repos</name> 
        <url>http://nexus-repo-url/content/groups/default-repos</url> 
       </repository> 
       <repository> 
        <snapshots> 
        <enabled>true</enabled> 
        </snapshots> 
        <releases> 
        <enabled>true</enabled> 
        </releases> 
        <id>nexus</id> 
        <name>default-repos</name> 
        <url>http://nexus-repo-url/content/groups/default-repos</url> 
       </repository> 
      </repositories> 
      <pluginRepositories> 
       <pluginRepository> 
        <snapshots> 
        <enabled>true</enabled> 
        </snapshots> 
        <releases> 
        <enabled>true</enabled> 
        </releases> 
        <id>nexus</id> 
        <name>default-repos</name> 
        <url>http://nexus-repo-url/content/groups/default-repos</url> 
       </pluginRepository> 
       <pluginRepository> 
        <snapshots> 
        <enabled>true</enabled> 
        </snapshots> 
        <releases> 
        <enabled>true</enabled> 
        </releases> 
        <id>nexus</id> 
        <name>default-repos</name> 
        <url>http://nexus-repo-url/content/groups/default-repos</url> 
       </pluginRepository> 
      </pluginRepositories> 
     </profile> 
    </profiles> 

    <activeProfiles> 
     <activeProfile>NexusProfile</activeProfile> 
    </activeProfiles> 


    <servers> 
     <server> 
      <id>nexus</id> 
      <username>anonymous</username> 
      <password>password</password> 
     </server> 
    </servers> 
</settings>