Заказ группы Nexus - PullRequest
       9

Заказ группы Nexus

0 голосов
/ 08 апреля 2011

Мы используем Nexus в качестве системы управления хранилищем. Однако мы сталкиваемся с проблемой управления нашими группами.

По сути, у нас есть версионный артефакт со снимком, который находится в двух репозиториях. Мы добавляем оба этих репозитория в одну и ту же группу в том порядке, в котором мы хотели бы, чтобы nexus их искал. Это в соответствии с документацией: http://www.sonatype.com/books/nexus-book/reference/config-sect-managing-groups.html

group
    ...
    --> repo1
            ...
            --> com.test.example-1.0.0-SNAPSHOT
            ...
    --> repo2
            ...
            --> com.test.example-1.0.0-SNAPSHOT         
            ...
    ...

Таким образом, заказывая repo1 выше repo2, мы всегда хотим загрузить пример артефакта из repo1. Однако в действительности мы обнаруживаем, что, несмотря на порядок, мы всегда скачиваем последнюю версию снимка из любого репо. Так что, если repo2 имеет более свежую версию снимка, мы делаем это.

Кто-нибудь еще видел такое поведение? Разве nexus не учитывает порядок с хранилищем снимков?

1 Ответ

2 голосов
/ 13 апреля 2011

Это на самом деле не Nexus, а Maven, который делает это, что происходит:

  • Maven запрашивает "maven-metatadata.xml" от Nexus
  • Nexus циклически повторяет репозитории элементов в заданном порядке (repo1, repo2 ...) и объединяет эти XML-файлы.
  • Из объединенного XML Maven «получает информацию» о последнем снимке и явно запрашивает его.
  • Nexus ничего не может сделать, я уверен, что ваши снимки имеют разные имена (artifactId-1.0-yyyy.mm.dd.hh.mm.jar, но у этих двух, вероятно, разные yyymmdd и т. Д.), И служат тому, что просит Maven

То, что вы можете сделать здесь, чтобы заставить Nexus «скрывать» вещи от Maven, это правила маршрутизации. Добавьте правило, которое для данного groupId или artifactId или чего-либо еще (это на самом деле регулярное выражение) служит только из repo1.

...