Hoe Maven automatisch jar bibliotheek afhankelijkheden oplost.


Datum van publicatie:17 januari 2021.



INFOMARTION > Hoe Maven automatisch jar bibliotheek afhankelijkheden oplost.

Overzicht.

Maven download automatisch jars van het internet, maar ik wil graag uitleggen hoe het precies werkt.

Het uitgangspunt van dit artikel is dat je moet begrijpen wat Maven is, dus als je niet bekend bent met Maven zelf, moet je ook het volgende artikel raadplegen.

Wat is Maven en wat doet Maven?

Inhoudsopgave

  1. Maven's vermogen om jar bibliotheek afhankelijkheden op te lossen.
  2. samenvatting

1. Maven's vermogen om jar bibliotheek afhankelijkheden op te lossen.

Maven kan automatisch de jar bestanden ophalen door simpelweg de benodigde jar bestanden te definiëren in het pom.xml bestand. Het leert ook automatisch de afhankelijke jars die nodig zijn om die jar te draaien. Ik wil graag uitleggen hoe het werkt.

1-1. Wat op te nemen in het pom.xml bestand.

Ten eerste, om de afhankelijkheid van de jar library op te lossen, wordt informatie verstrekt in het pom.xml bestand. Maven verwerkt de informatie uit het pom.xml bestand. Als bijvoorbeeld "poi-3.17.jar" vereist is, wordt het in pom.xml als volgt beschreven. (Overigens, 'poi-3.17.jar' is een jar die gebruikt wordt voor het manipuleren van Microsoft Office bestanden zoals Excel.)

pom.xml


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

Het simpelweg vermelden van het bovenstaande zal "poi-3.17.jar" downloaden van het Internet en ook de bijbehorende jar downloaden van het Internet die nodig is om "poi-3.17.jar" te draaien.

1-2. Hoe worden ze van het internet gedownload?

Een eenvoudige uitleg van het systeem is te zien in het onderstaande schema.

Download van Maven repositories beschikbaar op het Internet. Als er niets is ingesteld, is de standaardwaarde Centraal archief. De URL is als volgt.

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

Zie de volgende website voor een lijst van op het internet beschikbare repositories, indien u daarin geïnteresseerd bent.

https://mvnrepository.com/repos

De eerste keer wordt de jar opgehaald uit een externe repository, maar hij wordt gekopieerd naar de lokale repository en wordt vanaf de tweede keer niet meer opgehaald. De locatie van de lokale repository is "C:\Users.m2".

Als je de bestemming wilt veranderen van de standaard waarde, kun je ook de bestemming veranderen door de volgende repository tag in pom.xml op te nemen.

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 voor het oplossen van afhankelijkheden van het aan te schaffen potje.

We hebben zojuist een voorbeeld beschreven van het verkrijgen van 'poi-3.17.jar', maar 'poi-3.17.jar' vereist 'commons-collections4-4.1.jar' om te kunnen draaien. Dit betekent dat 'poi-3.17.jar' afhankelijk is van 'commons-collections4-4.1.jar'. Het mechanisme om deze afhankelijkheid op te lossen kan gevonden worden in de Maven repository waar de 'poi-3.17.jar' is opgeslagen. De URL is als volgt.

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

Ik denk dat "poi-3.17.pom" is opgeslagen, en in dit bestand vind je informatie dat "poi-3.17.jar" afhankelijk is van "commons-collections4-4.1.jar". Dit betekent dat bij het ophalen van 'poi-3.17.jar', het systeem niet alleen het jar-bestand ophaalt, maar ook het pom-bestand en controleert op andere benodigde jar-bestanden.

2. samenvatting

Maven's mechanisme voor het oplossen van afhankelijkheden van jar libraries is dat afhankelijkheden worden gedefinieerd in het pom bestand waar de jar files die opgehaald moeten worden zijn opgeslagen.

Bedankt voor het kijken tot het einde.