Hur Maven automatiskt löser beroenden av jar-bibliotek.


Datum för offentliggörande:17 januari 2021.



INFOMARTION > Hur Maven automatiskt löser beroenden av jar-bibliotek.

Översikt.

Maven hämtar automatiskt jars från internet, men jag vill förklara exakt hur det fungerar.

Utgångspunkten för den här artikeln är att du måste förstå vad Maven är, så om du inte är bekant med Maven bör du också läsa följande artikel.

Vad är Maven och vad gör Maven?

Innehållsförteckning

  1. Mavens förmåga att lösa beroenden av jar-bibliotek.
  2. sammanfattning

1. Mavens förmåga att lösa beroenden av jar-bibliotek.

Maven kan automatiskt hämta jar-filerna genom att helt enkelt definiera de nödvändiga jar-filerna i filen pom.xml. Den lär sig också automatiskt vilka beroende jars som behövs för att köra denna jar. Jag vill förklara hur det fungerar.

1-1. Vad som ska ingå i pom.xml-filen.

För att lösa beroendet av jar-biblioteket finns information i filen pom.xml. Maven bearbetar informationen från filen pom.xml. Om till exempel "poi-3.17.jar" krävs beskrivs den i pom.xml på följande sätt. (För övrigt är "poi-3.17.jar" en jar som används för att manipulera Microsoft Office-filer som Excel.)

pom.xml


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

Om du bara nämner ovanstående kommer du att ladda ner "poi-3.17.jar" från Internet och även ladda ner den medföljande jar från Internet som krävs för att köra "poi-3.17.jar".

1-2. Hur hämtas de från internet?

En enkel förklaring av systemet visas i diagrammet nedan.

Ladda ner från Maven-arkiv som finns på Internet. Om inget anges är standardvärdet Central Repository. URL:n är följande.

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

På följande webbplats finns en lista över arkiv som är tillgängliga på Internet om du är intresserad.

https://mvnrepository.com/repos

Första gången hämtas burken från ett externt arkiv, men den kopieras till det lokala arkivet och hämtas inte från och med andra gången. Platsen för det lokala arkivet är "C:\Users\user\.m2".

Om du vill ändra destinationen från standardvärdet kan du också ändra destinationen genom att inkludera följande tagg för repository i 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. Mekanismer för att lösa beroenden av den burk som ska förvärvas.

Vi har just beskrivit ett exempel på att få fram "poi-3.17.jar", men "poi-3.17.jar" kräver "commons-collections4-4.1.jar" för att kunna köras. Detta innebär att "poi-3.17.jar" är beroende av "commons-collections4-4.1.jar". Mekanismen för att lösa detta beroende finns i Maven-förrådet där poi-3.17.jar lagras. URL:n är följande.

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

Jag tror att "poi-3.17.pom" lagras, och i denna fil finns information om att "poi-3.17.jar" är beroende av "commons-collections4-4.1.jar". Detta innebär att när systemet hämtar "poi-3.17.jar" hämtar det inte bara jar-filen, utan även pom-filen och kontrollerar om det finns andra nödvändiga jar-filer.

2. sammanfattning

Mavens mekanism för att lösa beroenden på jar-bibliotek är att beroenden definieras i pom-filen där de jar-filer som ska hämtas lagras.

Tack för att du tittade på till slutet.




■INFORMATION

Klicka här för att komma till den översta sidan med information.


■PROFILE

Klicka här för en profil.


■Kontaktuppgifter.

För frågor om artikeln, vänligen kontakta oss här.