2012-06-21 118 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>