Репозитории зависимостей

Maven хранит и получает библиотеки из репозиториев:

Локальный репозиторий (~/.m2/repository): кэш всех загруженных артефактов на вашем компьютере. Maven сначала ищет зависимость здесь.

Центральный репозиторий (Maven Central): основной общедоступный репозиторий от Apache. Если зависимости нет локально, Maven скачает ее с Maven Central (URL: repo.maven.apache.org).

Удаленные репозитории (корпоративные или сторонние): дополнительные хранилища, например корпоративный Nexus/Artifactory или частные репозитории библиотек. Их адреса настраиваются в pom.xml проекта или в конфигурации Maven.

Maven не скачивает артефакт, если он уже есть в локальном репозитории (что экономит время и трафик).

Пояснение: Репозитории Maven – это места хранения и распространения библиотек (артефактов). Когда вы указываете зависимость в pom.xml, вам не нужно вручную предоставлять jar-файл. Maven сам проверит, есть ли этот артефакт в вашем локальном репозитории (директория .m2/repository в домашней папке пользователя). Локальный репозиторий – это кэш: все однажды скачанные библиотеки сохраняются там. Если нужной зависимости нет локально, Maven обращается к удаленным репозиториям по очереди.
 
По умолчанию настроен Maven Central – крупнейший общественный репозиторий Java-библиотек. Maven Central содержит большинство популярных библиотек и фреймворков с открытым кодом. При первой необходимости Maven скачает зависимость из Maven Central и сохранит у вас локально.
 
Кроме центрального, можно подключать другие репозитории. В компаниях часто используется внутренний репозиторий на базе Nexus или JFrog Artifactory – туда публикуются собственные библиотеки и артефакты организации, а также этот репозиторий может проксировать запросы в Maven Central (кэшируя внешние зависимости для экономии трафика и контроля). В pom.xml дополнительный репозиторий прописывается внутри тега <repositories> с указанием URL. Gradle, кстати, использует ту же концепцию репозиториев (мы укажем mavenCentral() или URL Nexus в Gradle-скрипте).
 
Важно отметить актуальный момент: ранее существовал популярный репозиторий JCenter (от JFrog/Bintray), но он прекращает работу (с 2021 г. в режиме только чтение и полностью отключен в 2024 г. с перенаправлением запросов на Maven Central). Современная практика – использовать Maven Central или свой корпоративный репозиторий, а ссылки на JCenter убрать из настройки сборки.
 
Для управления репозиториями Maven также предоставляет настройки в файле settings.xml (где можно прописать зеркала репозиториев, учетные данные доступа к приватным репозиториям и пр.). Но в простых случаях достаточно центрального репозитория по умолчанию. Благодаря системе репозиториев, проекты Maven легко делятся библиотеками: достаточно опубликовать артефакт в Maven Central или другой репозиторий, и любой разработчик в мире сможет подключить его зависимостью без ручной загрузки файлов.

Автор: к.п.н., Румянцев Сергей Александрович, доцент Финансового университета при Правительстве РФ; доцент ОЧУВО Международного инновационного университета; Консалтинг, управление разработкой ПО; системный и бизнес анализ; менеджмент; аналитиз данных; управление ИТ. Телефон для связи +79269444818 (мессенджеры)   Короткая ссылка:
Maven хранит и получает библиотеки из репозиториев:

Локальный репозиторий (~/.m2/repository): кэш всех загруженных артефактов на вашем компьютере. Maven сначала ищет зависимость здесь.

Центральный репозиторий (Maven Central): основной общедоступный репозиторий от Apache. Если зависимости нет локально, Maven скачает ее с Maven Central (URL: repo.maven.apache.org).

Удаленные репозитории (корпоративные или сторонние): дополнительные хранилища, например корпоративный Nexus/Artifactory или частные репозитории библиотек. Их адреса настраиваются в pom.xml проекта или в конфигурации Maven.

Maven не скачивает артефакт, если он уже есть в локальном репозитории (что экономит время и трафик).

Пояснение: Репозитории Maven – это места хранения и распространения библиотек (артефактов). Когда вы указываете зависимость в pom.xml, вам не нужно вручную предоставлять jar-файл. Maven сам проверит, есть ли этот артефакт в вашем локальном репозитории (директория .m2/repository в домашней папке пользователя). Локальный репозиторий – это кэш: все однажды скачанные библиотеки сохраняются там. Если нужной зависимости нет локально, Maven обращается к удаленным репозиториям по очереди.
 
По умолчанию настроен Maven Central – крупнейший общественный репозиторий Java-библиотек. Maven Central содержит большинство популярных библиотек и фреймворков с открытым кодом. При первой необходимости Maven скачает зависимость из Maven Central и сохранит у вас локально.
 
Кроме центрального, можно подключать другие репозитории. В компаниях часто используется внутренний репозиторий на базе Nexus или JFrog Artifactory – туда публикуются собственные библиотеки и артефакты организации, а также этот репозиторий может проксировать запросы в Maven Central (кэшируя внешние зависимости для экономии трафика и контроля). В pom.xml дополнительный репозиторий прописывается внутри тега <repositories> с указанием URL. Gradle, кстати, использует ту же концепцию репозиториев (мы укажем mavenCentral() или URL Nexus в Gradle-скрипте).
 
Важно отметить актуальный момент: ранее существовал популярный репозиторий JCenter (от JFrog/Bintray), но он прекращает работу (с 2021 г. в режиме только чтение и полностью отключен в 2024 г. с перенаправлением запросов на Maven Central). Современная практика – использовать Maven Central или свой корпоративный репозиторий, а ссылки на JCenter убрать из настройки сборки.
 
Для управления репозиториями Maven также предоставляет настройки в файле settings.xml (где можно прописать зеркала репозиториев, учетные данные доступа к приватным репозиториям и пр.). Но в простых случаях достаточно центрального репозитория по умолчанию. Благодаря системе репозиториев, проекты Maven легко делятся библиотеками: достаточно опубликовать артефакт в Maven Central или другой репозиторий, и любой разработчик в мире сможет подключить его зависимостью без ручной загрузки файлов.

https://webprogr.ru/~tFLbp
Короткая ссылка на новость:https://webprogr.ru/~tFLbp


Последние новости

Репозитории зависимостей

Maven хранит и получает библиотеки из репозиториев:

Локальный репозиторий (~/.m2/repository): кэш всех загруженных артефактов на вашем компьютере. Maven сначала ищет зависимость здесь.

Центральный репозиторий (Maven Central): основной общедоступный репозиторий от Apache. Если зависимости нет локально, Maven скачает ее с Maven Central (URL: repo.maven.apache.org).

Удаленные репозитории (корпоративные или сторонние): дополнительные хранилища, например корпоративный Nexus/Artifactory или частные репозитории библиотек. Их адреса настраиваются в pom.xml проекта или в конфигурации Maven.

Maven не скачивает артефакт, если он уже есть в локальном репозитории (что экономит время и трафик).

Пояснение: Репозитории Maven – это места хранения и распространения библиотек (артефактов). Когда вы указываете зависимость в pom.xml, вам не нужно вручную предоставлять jar-файл. Maven сам проверит, есть ли этот артефакт в вашем локальном репозитории (директория .m2/repository в домашней папке пользователя). Локальный репозиторий – это кэш: все однажды скачанные библиотеки сохраняются там. Если нужной зависимости нет локально, Maven обращается к удаленным репозиториям по очереди.
 
По умолчанию настроен Maven Central – крупнейший общественный репозиторий Java-библиотек. Maven Central содержит большинство популярных библиотек и фреймворков с открытым кодом. При первой необходимости Maven скачает зависимость из Maven Central и сохранит у вас локально.
 
Кроме центрального, можно подключать другие репозитории. В компаниях часто используется внутренний репозиторий на базе Nexus или JFrog Artifactory – туда публикуются собственные библиотеки и артефакты организации, а также этот репозиторий может проксировать запросы в Maven Central (кэшируя внешние зависимости для экономии трафика и контроля). В pom.xml дополнительный репозиторий прописывается внутри тега <repositories> с указанием URL. Gradle, кстати, использует ту же концепцию репозиториев (мы укажем mavenCentral() или URL Nexus в Gradle-скрипте).
 
Важно отметить актуальный момент: ранее существовал популярный репозиторий JCenter (от JFrog/Bintray), но он прекращает работу (с 2021 г. в режиме только чтение и полностью отключен в 2024 г. с перенаправлением запросов на Maven Central). Современная практика – использовать Maven Central или свой корпоративный репозиторий, а ссылки на JCenter убрать из настройки сборки.
 
Для управления репозиториями Maven также предоставляет настройки в файле settings.xml (где можно прописать зеркала репозиториев, учетные данные доступа к приватным репозиториям и пр.). Но в простых случаях достаточно центрального репозитория по умолчанию. Благодаря системе репозиториев, проекты Maven легко делятся библиотеками: достаточно опубликовать артефакт в Maven Central или другой репозиторий, и любой разработчик в мире сможет подключить его зависимостью без ручной загрузки файлов.

Рейтинг@Mail.ru