Установка учетных данных одного сервера в Maven для нескольких хранилищ

Могу ли я иметь несколько репозиториев в настройках Maven.xml с учетными данными одного сервера?

Мы используем Maven 3.0.4 для развертывания артефактов для Nexus pro версии 2.2.1

У нас есть несколько репозиториев на одном сервере, и пользователь использует те же учетные данные для доступа ко всем этим репозиториям.

Несколько репозиториев settings.xml с одинаковыми учетными данными:

<repositories>
<repository>
   <id>Staging-group</id>
   <url>http://server/nexus/content/groups/Staging-group</url>
<repository>
   <id>RELEASES</id>
   <url>http://server/nexus/content/repositories/RELEASES</url>
</repository>
<repository>
   <id>INTERNALS</id>
   <url>http://server/nexus/content/repositories/INTERNALS</url>
</repository>
<repository>
   <id>SNAPSHOTS</id>
   <url>http://server/nexus/content/repositories/SNAPSHOTS</url>
</repository>
</repositories>
.....
<servers>
<server>
   <id>Staging-group</id>
   <username>user</username>
   <password>password</password>
</server>
<server>
   <id>RELEASES</id>
   <username>user</username>
   <password>password</password>
</server>
<server>
   <id>SNAPSHOTS</id>
   <username>user</username>
   <password>password</password>
</server>
<server>
   <id>INTERNALS</id>
   <username>user</username>
   <password>password</password>
</server>
</servers>

Nexus использует аутентификацию Active Directory. Поэтому каждый раз, когда пользователь меняет свой пароль Windows, им необходимо изменить все четыре записи в файле settings.xml

Есть ли способ объявить учетные данные один раз для всех репозиториев?

Спасибо, Эяль

Ответ 1

Да, по крайней мере, я считаю, что это должно сработать.

Вместо

<repository>
   <id>SNAPSHOTS</id>
   <url>http://server/nexus/content/repositories/SNAPSHOTS</url>
</repository>

Использование

<repository>
  <id>nexus</id>
  <name>SNAPSHOTS</name>
  <url>http://server/nexus/content/repositories/SNAPSHOTS</url>
</repository>

Затем просто ссылайтесь на нексус как на свой идентификатор сервера.

Ответ 2

Кажется, мне не разрешают прокомментировать, потому что я недостаточно опытен. Как будто:) Однако, что касается WARNING profiles.profile[development].repositories.repository.id, должно быть уникальным, я обнаружил, что это два найденных файла settings.xml. Один в установке maven ${maven-install}/conf/settings.xml, а также один в ~/.m2/settings.xml. Определите, какой из них вы хотите, и очистите другой.

Ответ 3

Я использую Apache Maven 3.5.2 и сталкиваюсь с той же проблемой. Я пытаюсь вытащить зависимости из двух nexus-release-repository, используя одну и ту же учетную запись (имя пользователя + пароль)

Мой .m2/setting.xml содержит:

<servers>
  <server>
    <id>nexus</id>
    <username>username</username>
    <password>password</password>
  </server>   
</servers>

Мой проект pom.xml содержит:

 <repositories>
    <repository>
      <id>nexus</id>
      <url>https://DOMAIN/repository/repoA-maven-public/</url>
    </repository>

    <repository>
      <id>nexus</id>
      <url>https://DOMAIN/repository/repoB-maven-public/</url>
    </repository>
  </repositories>

Я использую одну и ту же учетную запись для входа в оба хранилища, но получаю maven error repositories.repository.id must be unique. Как это можно решить