Wie Maven automatisch die Abhängigkeiten von Jar-Bibliotheken auflöst.


Datum der Veröffentlichung:17. Januar 2021.



INFOMARTION > Wie Maven automatisch die Abhängigkeiten von Jar-Bibliotheken auflöst.

Überblick.

Maven lädt automatisch Jars aus dem Internet herunter, aber ich möchte erklären, wie das genau funktioniert.

Die Prämisse dieses Artikels ist, dass Sie verstehen müssen, was Maven ist. Wenn Sie also mit Maven selbst nicht vertraut sind, sollten Sie auch den folgenden Artikel lesen.

Was ist Maven und was macht Maven?

Inhaltsübersicht

  1. Die Fähigkeit von Maven, Abhängigkeiten von Jar-Bibliotheken aufzulösen.
  2. Zusammenfassung

1. Die Fähigkeit von Maven, Abhängigkeiten von Jar-Bibliotheken aufzulösen.

Maven kann die Jar-Dateien automatisch abrufen, indem es einfach die benötigten Jar-Dateien in der pom.xml-Datei definiert. Es lernt auch automatisch die abhängigen Jars, die zur Ausführung dieses Jars benötigt werden. Ich möchte erklären, wie das funktioniert.

1-1. Was in die Datei pom.xml aufgenommen werden soll.

Um die Abhängigkeit von der jar-Bibliothek aufzulösen, werden zunächst Informationen in der Datei pom.xml bereitgestellt. Maven verarbeitet die Informationen aus der Datei pom.xml. Wenn z.B. "poi-3.17.jar" benötigt wird, wird es in pom.xml wie folgt beschrieben. (Poi-3.17.jar" ist übrigens ein Jar, das für die Bearbeitung von Microsoft Office-Dateien wie Excel verwendet wird.)

pom.xml


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

Wenn Sie die obigen Angaben machen, wird "poi-3.17.jar" aus dem Internet heruntergeladen und auch das zugehörige jar aus dem Internet, das für die Ausführung von "poi-3.17.jar" erforderlich ist.

1-2. Wie werden sie aus dem Internet heruntergeladen?

Eine einfache Erklärung des Systems ist in der nachstehenden Abbildung dargestellt.

Herunterladen aus den im Internet verfügbaren Maven-Repositories. Wenn nichts eingestellt ist, ist der Standardwert "Zentrales Repository". Die URL lautet wie folgt.

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

Auf der folgenden Website finden Sie eine Liste der im Internet verfügbaren Repositories, falls Sie daran interessiert sind.

https://mvnrepository.com/repos

Beim ersten Mal wird die Jar-Datei aus einem externen Repository geholt, aber sie wird in das lokale Repository kopiert und ab dem zweiten Mal nicht mehr geholt. Der Speicherort des lokalen Repository ist "C:\Users\user\.m2".

Wenn Sie das Ziel gegenüber dem Standardwert ändern möchten, können Sie das Ziel auch ändern, indem Sie das folgende Repository-Tag in pom.xml einfügen.

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. Mechanismen zur Auflösung von Abhängigkeiten des zu erwerbenden Gefäßes.

Wir haben gerade ein Beispiel für die Beschaffung von "poi-3.17.jar" beschrieben, aber "poi-3.17.jar" erfordert "commons-collections4-4.1.jar", um ausgeführt werden zu können. Das bedeutet, dass "poi-3.17.jar" von "commons-collections4-4.1.jar" abhängt. Der Mechanismus zur Auflösung dieser Abhängigkeit ist im Maven-Repository zu finden, in dem das 'poi-3.17.jar' gespeichert ist. Die URL lautet wie folgt.

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

Ich denke, dass "poi-3.17.pom" gespeichert ist, und in dieser Datei finden Sie die Information, dass "poi-3.17.jar" von "commons-collections4-4.1.jar" abhängig ist. Das bedeutet, dass das System beim Abrufen von "poi-3.17.jar" nicht nur die jar-Datei, sondern auch die pom-Datei abruft und nach anderen erforderlichen jar-Dateien sucht.

2. Zusammenfassung

Der Mechanismus von Maven zur Auflösung von Abhängigkeiten von Jar-Bibliotheken besteht darin, dass die Abhängigkeiten in der pom-Datei definiert werden, in der die abzurufenden Jar-Dateien gespeichert sind.

Danke, dass Sie bis zum Ende zugesehen haben.