Внешний прокси локального репозитория maven

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

Итак, у меня есть прокси в моей конфигурации Archiva для codehaus, sonatype (несколько), базового Central, Cloudera для материалов Hadoop и т. Д .; но я не могу найти конфигурацию, которая не позволяла бы моим сборкам напрямую обращаться к внешним источникам (до которых они не могут добраться), и в то же время удовлетворяла бы вещам, которых еще нет в моем архиве, с помощью прокси.

Есть ли какая-то хитрость, которую мне здесь не хватает? Или мне нужно переключиться на Artifactory или Nexus, чтобы получить такую ​​функциональность?


person Bradford K Hull    schedule 21.06.2012    source источник


Ответы (3)


Вам необходимо установить параметры maven в каждой из сред сборки, чтобы они указывали на ваш экземпляр архива.
например, в $user.home/.m2/settings.xml

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

Я раньше не использовал Archiva, но успешно сделал это с Nexus.

person crowne    schedule 21.06.2012
comment
Это было первое, что я попробовал. Я полагаю, я должен был упомянуть об этом; Я только начал отвечать на вопросы и обнаружил, что многие люди не проводят исследований, прежде чем задавать вопросы. Я пробовал неделями, сотни подходов. Ни один из них не работал вообще; либо они идут прямо к внешнему источнику (и здесь не работают из-за брандмауэров), либо Archiva не пытается найти файлы через настроенные мной прокси. - person Bradford K Hull; 26.06.2012
comment
Вы также можете посмотреть, будет ли Nexus вести себя лучше, вы можете довольно быстро выполнить настройку по умолчанию, а затем применить настройки прокси-сервера. - person crowne; 28.06.2012

Переход на нексус будет предпочтительнее.

Я прикрепил файл 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>
person om39a    schedule 22.06.2012

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

person Olivier Lamy    schedule 22.06.2012