Невозможно использовать Apache Archiva в качестве зеркала

Я думаю, что это должна была быть простая задача, но я не смог ее выполнить.

Я установил архивный репозиторий следующим образом:

  • 2 внутренних репозитория Maven1 (старые проекты)
  • 1 внутренний репозиторий Maven2
  • 7 удаленных репозиториев (центральные, java.net, jboss.org и т. д.)

Для каждого внутреннего репо я создал прокси-соединение с каждым удаленным репо.

Я добавил новое зеркало в свой файл settings.xml, как описано в архивной документации:

<mirror>
  <id>archiva.default</id>
  <url>http://repo.mycompany.com:8080/archiva/repository/internal/</url>
  <mirrorOf>*</mirrorOf>
</mirror>

Когда я пытаюсь создать простой проект с одной зависимостью от некоторых удаленных репозиториев, никакие артефакты не загружаются. Почему?!?

Спасибо за любую помощь.


person Eldelshell    schedule 24.09.2010    source источник
comment
Вы уверены, что используете правильный файл настроек? Используйте mvn -s settings.xml, чтобы быть уверенным.   -  person Mark O'Connor    schedule 24.09.2010
comment
@Mark: да @Pascal: это говорит только о том, что mvn не удалось получить файлы .jar из репозитория. Я не вижу ничего полезного в архиве. Итак, эта конфигурация подходит? Я проверил, есть ли у архива связь с этим репозиторием, и это так.   -  person Eldelshell    schedule 25.09.2010
comment
когда вы говорите каждый внутренний репозиторий, вам нужно подключить только основной внутренний репо к пультам, а не ко всем внутренним. Не уверен, что вы подразумеваете под соединением с архивом - попробуйте загрузить запрошенный URL-адрес непосредственно из Archiva. Конфигурация выглядит нормально. Вы также можете изменить log4j Archiva, чтобы включить ведение журнала прокси, если это может помочь.   -  person Brett Porter    schedule 26.09.2010
comment
@Бретт, о! мне не нужно создавать прокси-коннектор между каждым внутренним и удаленным репозиторием? С архивом есть связь, я хотел сказать, что смог загрузить банку из удаленных репозиториев. Проблема в том, что основным репозиторием является Maven1, и он используется проектом THE. Затем есть репозиторий M2, который используется для экспериментальных проектов. Может только основной репозиторий умеет проксировать?   -  person Eldelshell    schedule 26.09.2010
comment
Это потому, что удаленный артефакт кэшируется в вашем локальном репозитории?   -  person crowne    schedule 27.09.2010


Ответы (2)


Archiva не отводит репозиториям никаких особых ролей. Вы делаете запросы к определенному управляемому репозиторию из Maven (то есть из ваших настроек, internal), и он будет обслуживать то, что там есть, или проксировать его из удаленных репозиториев, которые были подключены через прокси-коннектор. По умолчанию это просто центральный — добавление нового удаленного репозитория не имеет никакого эффекта, пока он не будет подключен к управляемому репозиторию с помощью прокси-коннектора.

Что вы, вероятно, захотите сделать, так это добавить прокси-коннектор во внутреннем репо к рассматриваемым удаленным репозиториям. Подумайте также о настройке белого списка, чтобы он был более эффективным.

Вы также можете настроить группу репозиториев, которая охватывает все управляемые репозитории (как maven 1, так и maven 2) для использования с одного URL-адреса.

person Brett Porter    schedule 26.09.2010
comment
Спасибо, я попробую это, когда доберусь до работы, и посмотрю, работает ли это. - person Eldelshell; 27.09.2010
comment
Ваше решение работает. У меня есть mvn для получения артефактов с помощью группы. Но он использует репозиторий Maven1. Во всяком случае, это работает, так что это так. Я надеюсь избавиться от вещей M1 раньше, чем позже. - person Eldelshell; 27.09.2010

У меня была точно такая же проблема с Archiva 2, для меня решение состояло в том, чтобы дать роль «Global Repository Observer» пользователю «Гость».

person dafan    schedule 02.03.2014