Как Maven автоматически разрешает зависимости библиотек jar.


Дата публикации:17 января 2021 года.



INFOMARTION > Как Maven автоматически разрешает зависимости библиотек jar.

Обзор.

Maven автоматически загружает банки из интернета, но я хотел бы объяснить, как именно это работает.

Предпосылкой этой статьи является то, что вам нужно понять, что такое Maven, поэтому если вы не знакомы с самим Maven, вам также следует обратиться к следующей статье.

Что такое Maven и что делает Maven?

Оглавление

  1. Способность Maven разрешать зависимости библиотек jar.
  2. резюме

1. Способность Maven разрешать зависимости библиотек jar.

Maven может автоматически получить jar-файлы, просто определив необходимые jar-файлы в файле pom.xml. Он также автоматически узнает зависимые банки, необходимые для запуска этого банка. Я хотел бы объяснить, как это работает.

1-1. Что включить в файл pom.xml.

Во-первых, чтобы разрешить зависимость библиотеки jar, информация предоставляется в файле pom.xml. Maven обрабатывает информацию из файла pom.xml. Если требуется, например, "poi-3.17.jar", то он описывается в pom.xml следующим образом. (Кстати, 'poi-3.17.jar' - это jar, используемый для работы с файлами Microsoft Office, такими как Excel.)

pom.xml


<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.17</version>
</dependency>

Простое упоминание выше позволит загрузить "poi-3.17.jar" из Интернета, а также загрузить из Интернета сопутствующий jar, необходимый для запуска "poi-3.17.jar".

1-2. Как они загружаются из Интернета?

Простое объяснение системы показано на схеме ниже.

Загрузите из репозиториев Maven, доступных в Интернете. Если ничего не задано, значением по умолчанию будет Central Repository. URL-адрес выглядит следующим образом.

https://repo1.maven.org/maven2/

Список хранилищ, доступных в Интернете, если вас это интересует, см. на следующем сайте.

https://mvnrepository.com/repos

В первый раз jar берется из внешнего хранилища, но он копируется в локальное хранилище и не берется со второго раза. Местоположение локального репозитория - "C:\Users\user\.m2".

Если вы хотите изменить пункт назначения по сравнению со значением по умолчанию, вы также можете изменить его, включив следующий тег репозитория в pom.xml.

pom.xml


<repositories>
    <repository>
        <id>sonatype-nexus-snapshots</id>
        <name>Sonatype Nexus Snapshots</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
        </snapshots>
    </repository>
</repositories>

1-3. Механизмы для разрешения зависимостей приобретаемого банка.

Мы только что описали пример получения 'poi-3.17.jar', но для запуска 'poi-3.17.jar' требуется 'commons-collections4-4.1.jar'. Это означает, что 'poi-3.17.jar' зависит от 'commons-collections4-4.1.jar'. Механизм разрешения этой зависимости можно найти в репозитории Maven, где хранится 'poi-3.17.jar'. URL-адрес выглядит следующим образом.

https://repo1.maven.org/maven2/org/apache/poi/poi/3.17/

Я думаю, что хранится "poi-3.17.pom", и в этом файле вы найдете информацию о том, что "poi-3.17.jar" зависит от "commons-collections4-4.1.jar". Это означает, что при получении 'poi-3.17.jar' система получает не только jar-файл, но и файл pom, а также проверяет наличие других необходимых jar-файлов.

2. резюме

Механизм Maven для разрешения зависимостей от библиотек jar заключается в том, что зависимости определяются в файле pom, где хранятся файлы jar, которые необходимо получить.

Спасибо, что досмотрели до конца.