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-адрес локального репозитория в моем браузере, я без проблем получу банку.

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

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

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

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

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


person Jens Schauder    schedule 25.11.2011    source источник
comment
Вы настроили свой локальный артефактор в качестве кеша для Maven Central? Сохраняются ли в конфигурации неиспользуемые артефакты? Может быть, тогда кеш очистился? Если вы скопируете URL-адрес в локальное репо, он загрузит его для вас и представит в том виде, в каком он найден локально. Чтобы увидеть, заполнен ли кеш, вы должны использовать URL-адрес кеша (должен быть похож на http://ourserver/artifactory/our-repo-cache/javax/....   -  person mliebelt    schedule 25.11.2011


Ответы (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.

person orien    schedule 27.11.2011
comment
Звучит многообещающе. Я попробую завтра. - person Jens Schauder; 27.11.2011
comment
Это действительно объясняет причину доступа к Maven Central. Спасибо - person Jens Schauder; 28.11.2011
comment
Вы также можете просто переопределить определение «центрального» репозитория в вашем локальном файле settings.xml. Таким образом, настроенный по умолчанию «центральный» больше не доступен. - person Brambo; 28.11.2011
comment
Совет по отладке: mvn -X расскажет, что для чего используется. Таким образом я обнаружил, что Central не является зеркальным именем maven central. Я получил новый файл settings.xml от нашего администратора нексуса, поэтому решил, что он правильный. - person april26; 14.05.2013