English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В терминологии Maven хранилище - это место (местоположение).
Мaven хранилище - это библиотека сторонних зависимостей в проекте, местоположение этой библиотеки называется хранилищем.
В Maven любая зависимость, плагин или вывод проекта строительства можно назвать компонентом.
Мaven хранилище помогает нам управлять компонентами (в основном JAR), это место, где хранятся все JAR файлы (WAR, ZIP, POM и т.д.).
Мaven хранилище имеет три типа:
Локальный
Центральный
Удаленное (remote)
Локальное хранилище Maven не создается автоматически после установки Maven, оно создается только при первом выполнении команды maven.
Во время выполнения Maven все необходимые компоненты напрямую извлекаются из локального хранилища. Если локальное хранилище отсутствует, оно сначала пытается загрузить компоненты из удаленного хранилища в локальное хранилище, а затем использовать компоненты из локального хранилища.
По умолчанию, независимо от Linux или Windows, у каждого пользователя в своей пользовательской директории есть директория с именем .m2/repository.
Локальное хранилище Maven по умолчанию создается в директории %USER_HOME%. Чтобы изменить defaultное местоположение, определите другой путь в файле settings.xml Maven в директории %M2_HOME%\conf.
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository>C:/MyLocalRepository</localRepository> </settings>
Когда вы запускаете команду Maven, Maven загружает необходимые файлы зависимостей в указанный вами путь.
Центральное хранилище Maven предоставляется сообществом Maven и содержит множество часто используемых библиотек.
Центральное хранилище содержит большинство流行ных开源 Java-компонентов, а также исходный код, информацию об авторах, SCM, информацию и лицензионные данные. В общем, компоненты, необходимые для простых Java-проектов, можно загрузить здесь.
Ключевые концепции центрального хранилища:
Этот репозиторий управляется сообществом Maven.
Не требует настройки.
Доступно через сеть.
Чтобы просмотреть содержимое центрального хранилища, сообщество Maven предоставляет URL:http://search.maven.org/#browseИспользуя этот репозиторий, разработчики могут искать все доступные кодовые библиотеки.
Если Maven не может найти необходимые файлы в центральном хранилище, он останавливает процесс компиляции и выводит ошибку в консоль. Чтобы избежать этой ситуации, Maven предоставляет концепцию удаленного хранилища, это хранилище, которое разработчики могут настроить сами, и оно содержит необходимые кодовые библиотеки или jar-файлы, используемые в других проектах.
Пример: если использовать следующий pom.xml, Maven скачает из удаленного хранилища файлы, заявленные в зависимости в этом pom.xml (которые недоступны в центральном хранилище).
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.companyname.projectgroup</groupId> <artifactId>project</artifactId> <version>1.0</version> <dependencies> <dependency> <groupId>com.companyname.common-lib</groupId> <artifactId>common-lib</artifactId> <version>1.0.0</version> </dependency> <dependencies> <repositories> <repository> <id>companyname.lib1</id> <url>http://download.companyname.org/maven2/lib1</url> </repository> <repository> <id>companyname.lib2</id> <url>http://download.companyname.org/maven2/lib2</url> </repository> </repositories> </project>
Когда мы выполняем команду Maven build, Maven начинает искать зависимости в следующем порядке:
Шаг 1 В lokальном хранилище выполняется поиск, если не удалось найти, выполните шаг 2, если нашли, то выполните другие действия.
Шаг 2 В центральном хранилище выполняется поиск, если не удалось найти и настроен один или несколько удаленных хранилищ, выполните шаг 4, если нашли, то скачайте в локальное хранилище для будущих ссылок.
Шаг 3 — Если удаленный репозиторий не был настроен, Maven просто остановит обработку и выведет ошибку (не удалось найти файл зависимости).
Шаг 4 — Поиск зависимостей в одном или нескольких удаленных репозиториях. Если файл зависимостей найден, он загружается в локальное хранилище для будущих ссылок. В противном случае Maven прекратит обработку и выведет ошибку (не удалось найти файл зависимости).
По умолчанию репозитории Maven расположены за границей, использование их в Китае может быть медленным, поэтому мы можем заменить их на репозитории Aliyun.
Измените файл settings.xml в папке conf в корневой директории Maven, в разделе mirrors, добавьте следующий контент:
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
Второй шаг: Добавьте в файл pom.xml:
<repositories> <repository> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>