2012-06-21 2 views
1

Я поддерживаю внутренний репозиторий Archiva в организации, где некоторые среды сборки не имеют доступа к открытому интернету для извлечения зависимостей. Я думал, что смогу настроить Archiva как зеркало для всего внешнего (зеркало с mirrorOf установлено на «внешние. * ,! моментальные снимки») и настроить его с помощью прокси, чтобы, если один из моих сборщиков запрашивает то, что не находится в Archiva, он будет использовать прокси-серверы для получения зависимостей от внешних источников, которые я настроил с помощью прокси. После этого он будет кэшироваться в Archiva и не нужно будет получать извне.maven local propository proxy external

Итак, у меня есть прокси-серверы в моей конфигурации Archiva для кодафайлов, сонатипа (несколько), базового центрального, Cloudera для материалов 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

Переключение к связующей будет Moer предпочтительнее ,

Я приложил 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> 
1

Я рекомендую вам прочитать http://maven.apache.org/guides/mini/guide-mirror-settings.html для конфигурирования настроек. И я рекомендую вам использовать версию версии Archiva 1.4, которая более эффективна. В настоящее время мы переписываем ui, чтобы увидеть реальный образец https://archiva-repository.apache.org/archiva/index.html?request_lang=en. Если вы хотите, чтобы ваша версия была удалена, вы должны скачать снимок отсюда: https://builds.apache.org/view/A-F/view/Archiva/job/archiva-all-maven-3.x-jdk-1.6/