Maven Проверяет локальный репозиторий, но загружает из центрального. Зачем?

У нас есть локальное хранилище артефактов для кэширования. Это настраивается в наших проектах, но когда я смотрю на стандартный вывод процесса сборки, я вижу строки, подобные этой

Downloading: http://ourserver/artifactory/our-repo/javax/transaction/jta/1.1/jta-1.1-sources.jar
Downloading: http://repo1.maven.org/maven2/javax/transaction/jta/1.1/jta-1.1-sources.jar
Downloaded: http://repo1.maven.org/maven2/javax/transaction/jta/1.1/jta-1.1-sources.jar (25 KB at 54.5 KB/sec)

Похоже, он пытается загрузить банку из локального репозитория и из Maven Central, а затем фактически использует Maven Central).

Если я скопирую URL-адрес локального хранилища в своем браузере, я получу банку без проблем.

Если я свяжусь с администратором приложения артефакта, я смогу увидеть артефакт.

Кто-нибудь может объяснить, почему Maven Central используется вообще?

ОБНОВЛЕНИЕ: Что продолжалось и что я сделал:

Ответ ориента объясняет, почему к Maven Central обращались вообще.

Комментарии mliebelt намекали мне на мое решение: похоже, наш локальный репозиторий должен был медлить, когда нужно было сначала загрузить артефакт. Я настроил кеш, чтобы охотно скачивать фляги и исходники при запросе pom. Это должно уменьшить количество артефактов, загруженных из других источников.

1 ответ

Решение

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

Похоже, что вы действительно хотите сделать, это настроить зеркало. Вы можете настроить mirror в вашем settings.xml файл:

<mirrors>
    <mirror>
        <id>our-server-repo</id>
        <name>our local repository</name>
        <url>http://ourserver/artifactory/our-repo</url>
        <mirrorOf>*</mirrorOf>
    </mirror>
</mirrors>

Обратите внимание, что мы использовали подстановочный знак (*) в mirrorOf элемент. Это указывает, что все хранилища будут доступны через указанный URL-адрес. С этой конфигурацией Maven будет обращаться только к вашему локальному репозиторию Artifactory.

Другие вопросы по тегам