Отключить maven настройки зеркала через локальный пом - PullRequest
0 голосов
/ 08 марта 2019

В моем maven settings.xml есть следующий фрагмент:

<mirrors>
    <mirror>
        <!--This sends everything to our company mirror -->
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <url>[company-mirror]</url>
    </mirror>
</mirrors>

Это отправляет все в зеркало нашей компании, и если оно не может разрешить его, мы получим его из репозитория maven.

Теперь мы также получаем исправления ошибок от поставщика одной из наших технологий через их Maven Nexus. Проблема в том, что зеркало нашей компании автоматически не запрашивает этот нексус, я могу легко предоставить следующее изменение зеркала в файле settings.xml:

<mirrors>
  <mirror>
    <id>[vendor-id]</id>
    <mirrorOf>[vendor-mirror]</mirrorOf>
    <url>[vendor-url]</url>
 </mirror>
 <mirror>[company-mirror-settings]</mirror>
</mirrors>

И тогда он будет запрашивать нормально, но мы не можем сделать это для поддерживаемого нашей компанией сервера сборки, который просто запрашивает зеркало компании.

Есть ли способ сделать это в нашем локальном pom.xml / проекте, не касаясь каких-либо внешних настроек?

Я пробовал следовать в нашем pom.xml, но это не сработало:

<project>
...
<repositories>
    <repository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>[vendor-id]</id>
        <name>[vendor-name]</name>
        <url>[vendor-url]</url>
    </repository>
</repositories>
...
</project>

при запуске чистой установки mvn появляется следующая ошибка:

[ERROR] Failed to execute goal on project <project-name>: Could not resolve dependencies for project <project-name>:jar:1.2.0-SNAPSHOT: Coul
d not find artifact <vendor-dependency> in <company-mirror>

1 Ответ

1 голос
/ 08 марта 2019

Определение зеркал в settings.xml допускает перегрузку репозитория central по умолчанию, а также любого репозитория, определенного в POM. Как следствие, если ваш сервер сборки использует файл настроек с вашим управляемым компанией репозиторием, определенным как <mirrorOf>*</mirrorOf>, он будет использовать его для каждого отдельного POM-определенного репозитория и в основном игнорирует эти определения.

Таким образом, либо settings.xml, используемый сервером сборки, следует изменить так, чтобы не все хранилища были зеркальными, либо хранилище, управляемое компанией, должно быть настроено для зеркалирования хранилища поставщика.

Документация Maven: Использование зеркал для репозиториев

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...