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.