Jak Maven automatycznie rozwiązuje zależności bibliotek w słoiku.


Data publikacji:17 stycznia 2021 r.



INFOMARTION > Jak Maven automatycznie rozwiązuje zależności bibliotek w słoiku.

Przegląd.

Maven automatycznie pobiera słoiki z internetu, ale chciałbym wyjaśnić, jak to dokładnie działa.

Założeniem tego artykułu jest zrozumienie, czym jest Maven, więc jeśli nie jesteś zaznajomiony z samym Mavenem, powinieneś również zapoznać się z poniższym artykułem.

Co to jest Maven i do czego służy?

Spis treści

  1. Zdolność Mavena do rozwiązywania zależności bibliotek jar.
  2. streszczenie

1. Zdolność Mavena do rozwiązywania zależności bibliotek jar.

Maven może automatycznie pobrać pliki jar, po prostu definiując wymagane pliki jar w pliku pom.xml. Automatycznie uczy się także, jakie słoiki zależne są potrzebne do uruchomienia danego słoika. Chciałbym wyjaśnić, jak to działa.

1-1. Co należy uwzględnić w pliku pom.xml.

Po pierwsze, aby rozwiązać kwestię zależności biblioteki jar, należy podać informacje w pliku pom.xml. Maven przetwarza informacje z pliku pom.xml. Jeśli wymagany jest na przykład "poi-3.17.jar", jest on opisany w pom.xml w następujący sposób. (Nawiasem mówiąc, "poi-3.17.jar" to słoik służący do manipulowania plikami pakietu Microsoft Office, takimi jak Excel.)

pom.xml


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

Podanie powyższych informacji spowoduje pobranie z Internetu pliku "poi-3.17.jar", a także pobranie z Internetu dołączonego do niego pliku jar, który jest wymagany do uruchomienia pliku "poi-3.17.jar".

1-2. W jaki sposób są one pobierane z Internetu?

Proste wyjaśnienie działania systemu przedstawiono na poniższym schemacie.

Pobierz z repozytoriów Maven dostępnych w Internecie. Jeśli nic nie jest ustawione, domyślną wartością jest Centralne Repozytorium. Adres URL jest następujący.

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

Lista repozytoriów dostępnych w Internecie znajduje się na następującej stronie internetowej.

https://mvnrepository.com/repos

Za pierwszym razem słoik jest pobierany z zewnętrznego repozytorium, ale jest kopiowany do lokalnego repozytorium i od drugiego razu nie jest pobierany. Lokalizacja lokalnego repozytorium to "C:\u2002\u2002".

Jeśli chcesz zmienić miejsce docelowe w stosunku do wartości domyślnej, możesz je zmienić, umieszczając w pom.xml następujący znacznik repozytorium.

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. Mechanizmy rozwiązywania problemów związanych z zależnościami słoików, które mają być nabyte.

Opisaliśmy właśnie przykład uzyskania pliku 'poi-3.17.jar', ale 'poi-3.17.jar' wymaga do działania pliku 'commons-collections4-4.1.jar'. Oznacza to, że plik 'poi-3.17.jar' zależy od pliku 'commons-collections4-4.1.jar'. Mechanizm rozwiązywania tej zależności można znaleźć w repozytorium Mavena, w którym przechowywany jest plik "poi-3.17.jar". Adres URL jest następujący.

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

Wydaje mi się, że plik "poi-3.17.pom" jest zapisany, a w nim znajdziesz informację, że "poi-3.17.jar" zależy od "commons-collections4-4.1.jar". Oznacza to, że podczas pobierania pliku "poi-3.17.jar" system pobiera nie tylko plik jar, ale także plik pom i sprawdza, czy nie ma innych potrzebnych plików jar.

2. streszczenie

Mechanizm rozwiązywania zależności od bibliotek jar w Mavenie polega na tym, że zależności definiuje się w pliku pom, w którym przechowywane są pliki jar, które mają zostać pobrane.

Dziękujemy, że oglądaliście do końca.