Maven проверяет локальный репозиторий, но загружает из центрального. Почему?
У нас есть локальное хранилище artifactory, настроенное для кэширования. Он настроен в наших проектах, но когда я смотрю на stdout процесса сборки, я вижу строки, подобные этой
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)
Таким образом, похоже, что он пытается загрузить jar из локального репозитория и из Maven Central, а затем фактически использует Maven Central).
Если я скопирую url локального репозитория в своем браузере, я получу jar без проблем.
Если я проверю с приложением администратора artifactory I могу увидеть артефакт.
Может ли кто-нибудь объяснить, почему Maven Central вообще используется?Обновление: что происходило и что я делал:
Ответ Ориен это объясняет, почему в Maven Central был доступен на всех.
Комментарии Mliebelt намекнули мне на мое решение: похоже, наш локальный репозиторий должен был замедлить ответ, когда ему нужно было сначала загрузить артефакт. Я настроил кэш на нетерпеливую загрузку банок и источников, когда pom запрашивается. Это должно уменьшить количество артефактов, загруженных из других источников.1 ответ:
Мэйвен может быть настроена для работы с несколькими репозиториями. Добавление репозитория, как это было в вашем проекте,не делает недействительными уже настроенные репозитории. По умолчанию каждый получает хранилище в 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.