Учебники

Maven — хранилища

В терминологии Maven репозиторий — это каталог, в котором хранятся все файлы проекта, библиотеки, плагины или любые другие специфичные для проекта артефакты, которые Maven может легко использовать.

Репозиторий Maven бывает трех типов. Следующая иллюстрация даст представление об этих трех типах.

  • местный
  • центральный
  • дистанционный пульт

Структура хранилища

Локальный репозиторий

Локальный репозиторий Maven — это папка на вашем компьютере. Он создается при первом запуске любой команды maven.

Локальный репозиторий Maven хранит все зависимости вашего проекта (библиотеки JAR, плагины JAR и т. Д.). Когда вы запускаете сборку Maven, Maven автоматически загружает все jar-файлы зависимостей в локальный репозиторий. Это помогает избежать ссылок на зависимости, хранящиеся на удаленном компьютере, каждый раз, когда создается проект.

Локальный репозиторий Maven по умолчанию создается Maven в каталоге% USER_HOME%. Чтобы переопределить расположение по умолчанию, укажите другой путь в файле Maven settings.xml, доступном в каталоге% 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. Содержит большое количество часто используемых библиотек.

Когда Maven не находит никакой зависимости в локальном хранилище, он начинает поиск в центральном хранилище, используя следующий URL — https://repo1.maven.org/maven2/

Основные понятия центрального хранилища следующие:

  • Этот репозиторий управляется сообществом Maven.
  • Не требуется быть настроенным.
  • Требуется доступ в Интернет для поиска.

Для просмотра содержимого центрального хранилища maven сообщество maven предоставило URL-адрес — https://search.maven.org/#browse . Используя эту библиотеку, разработчик может искать все доступные библиотеки в центральном хранилище.

Удаленный репозиторий

Иногда Maven также не находит упомянутой зависимости в центральном хранилище. Затем он останавливает процесс сборки и выводит сообщение об ошибке на консоль. Чтобы предотвратить такую ​​ситуацию, Maven предлагает концепцию удаленного репозитория , который является собственным настраиваемым репозиторием разработчика, содержащим необходимые библиотеки или другие файлы проекта.

Например, используя нижеупомянутый 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

Когда мы выполняем команды сборки Maven, Maven начинает поиск библиотек зависимостей в следующей последовательности:

Шаг 1 — Поиск зависимости в локальном репозитории, если не найден, перейти к шагу 2, иначе выполнить дальнейшую обработку.

Шаг 2 — Поиск зависимости в центральном репозитории, если не найдено и упоминается / упоминается удаленный репозиторий / репозитории, затем перейдите к шагу 4. В противном случае он загружается в локальный репозиторий для дальнейшего использования.

Шаг 3 — Если удаленный репозиторий не был упомянут, Maven просто останавливает обработку и выдает ошибку (Невозможно найти зависимость).

Шаг 4 — Поиск зависимости в удаленном репозитории или репозиториях, если он найден, он загружается в локальный репозиторий для дальнейшего использования. В противном случае Maven останавливает обработку и выдает ошибку (Невозможно найти зависимость).