2014-01-28 3 views
1

У меня есть это зеркало в моем файле settings.xml:Maven: Как настроить файл settings.xml для добавления репозиториев?

<mirrors> 
    <mirror> 
     <id>internal-repository</id> 
     <name>Maven Repository Manager running on repo.mycompany.com</name> 
     <url>http://nexus_server.mycompany.com/nexus/XXX</url> 
     <mirrorOf>*</mirrorOf> 
    </mirror> 
</mirrors> 

Теперь мне нужен плагин и зависимость, что я не могу найти в этом хранилище. Я попрошу их добавить. Но сначала мне нужно их протестировать.

Итак, мне нужно добавить другие репозитории http: \ NEW_REP_URL в settings.xml. И поэтому я хочу, чтобы Maven получал зависимость/плагин от репозитория, который я добавляю, если он не находит его в связи с ней.

Другими словами, как сделать приоритеты между репозиториями: если их не найти в локальном кеше, то в связи с ней. Если не найдено в связи с нашей компанией, то в http: \ NEW_REP_URL?

Можете ли вы дать мне пример кода с некоторыми пояснениями?

Большое вам спасибо!

+0

Это может быть хорошим советом: http://maven.apache.org/guides/mini/guide-mirror-settings.html#Advanced_Mirror_Specification –

+0

Спасибо за ссылку. Но я уже прошел. Честно говоря, для меня это не совсем понятно ...:/ – Farah

+0

Это репозиторий, расположенный в вашей компании? Я думаю, что вы можете добавить этот новый репозиторий в центральный репозиторий nexus –

ответ

1

Вы должны создать прокси-репо в Nexus и добавить его в группу, которую вы используете для доступа к Nexus. Это описано более подробно в книге Nexus, например. в главе about Maven configuration.

Главное преимущество заключается в том, что у вас может быть целая группа разработчиков, серверов CI и т. Д., Которые НЕ должны изменять файл настроек, и вы можете просто добавить больше репозиториев и артефактов прокси для всех из них, просто добавив больше для группы.

Решение этих репозиториев через группу в Nexus также довольно немного быстрее, чем Maven делает все разрешение на клиенте.

И кстати. приоритет репозиториев определяется порядком репозиториев в группе.

1

Это звучит как то, что вы говорите, вы хотите, чтобы тянуть в некоторой зависимости non_public_project.jar, который доступен только на http://non_public_nexus_repo и не могут быть найдены на операции РЕПО с 3 по умолчанию:

  • апача снимкам
  • Codehaus моментальные снимки
  • Maven центральные

Если да, то ваш settings.xml отлично: один mirror POINTIN g на сервер Nexus вашей компании.

Это сам сервер Nexus, который необходимо настроить для объявления proxy repository (например, внешнего репо или удаленного репо). Если Nexus не может найти рассматриваемую банку либо локально, либо в Apache/Codehaus/Central, то она будет выглядеть в указанном вами месте NEW_REP_URL.

Надеюсь, что это поможет.

Смежные вопросы