Kako Maven razrešuje tranzitivne odvisnosti iz repozitorijev


Datum objave:

Osveženo:


Tehnični članki > Kako Maven razrešuje tranzitivne odvisnosti iz repozitorijev

Status in varna uporaba 2026

Sklep: Maven ne odkrije poljubnih JAR po imenu datoteke. Razrešuje prijavljene koordinate, prenese artefakt POM, sledi, da odvisnosti POM, uporablja obseg in neobvezna pravila, in uporablja odvisnost mediacijo, ko več poti zahteva različne različice.

Kaj se boš naučil?

  • Kako lokalni, centralni, zrcalni in zasebni arhivi sodelujejo pri reševanju.
  • Zakaj je odvisnost POM - ne JAR sam - opisuje najbolj tranzitne zahteve.
  • Kako pregledati učinkovit graf pred prevlado različice.

Za koga je to? Maven uporabniki, ki želijo razumeti, od kod prihajajo preneseni artefakti in zakaj se pojavljajo dodatne knjižnice.

Kontekst za leto 2026: Starejše Apache POI koordinate spodaj ostajajo uporabne kot zgodovinski primer, ne pa kot priporočilo različice. Uporabiti sedanje podprte odvisnosti, zaupanja vredne repozitorije HTTPS, nadzorno vsoto/kontrolo podpisa, kjer je na voljo, in politiko posodabljanja odvisnosti.

Varnostna opomba: Ukazi in konfiguracijski primeri v prvotnem članku niso bili ponovno predvajani v trenutnem proizvodnem okolju. Pred uporabo preveri podprte različice, varnostne kopije, nadzor dostopa in povratne korake v ločenem preskusnem okolju.

Glavni uradni viri

Pregled.

Maven samodejno prenese JAR datoteke iz interneta, vendar bi rad natančno razložil, kako to deluje.

Predpostavka tega članka je, da morate razumeti, kaj je Maven, zato si, če ga ne poznate, preberite tudi naslednji članek.

Kaj je Maven in kaj počne?

Kazalo vsebine

  1. Mavenova zmožnost reševanja odvisnosti knjižnic jar.
  2. povzetek

1. Mavenova zmožnost reševanja odvisnosti knjižnic jar.

Maven lahko samodejno pridobi datoteke JAR tako, da v datoteki pom.xml preprosto določi zahtevane datoteke jar. Prav tako se samodejno nauči odvisnih JAR datotekev, ki so potrebni za zagon tega JAR datoteke. Rad bi pojasnil, kako deluje.

1-1. Kaj vključiti v datoteko pom.xml.

Najprej je treba razrešiti odvisnost knjižnice JAR, informacije so na voljo v datoteki pom.xml. Maven obdela informacije iz datoteke pom.xml. Če je na primer potreben "poi-3.17.jar", je v pom.xml opisan na naslednji način. (Mimogrede, 'poi-3.17.jar' je JAR, ki se uporablja za manipulacijo datotek Microsoft Office, kot je Excel.)

pom.xml


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

S preprosto navedbo zgoraj navedenega boste z interneta prenesli program "poi-3.17.jar" in z interneta prenesli tudi spremljajoči JAR, ki je potreben za zagon programa "poi-3.17.jar".

1-2. Kako se prenesejo z interneta?

Enostavna razlaga sistema je prikazana na spodnjem diagramu.

Repozitorij Maven.

Prenesite iz repozitorijev Maven, ki so na voljo v internetu. Če ni nastavljeno nič, je privzeta vrednost Centralni repozitorij. URL je naslednji.

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

Če vas to zanima, si oglejte naslednjo spletno stran s seznamom repozitorijev, ki so na voljo na internetu.

https://mvnrepository.com/repos

Prvič se JAR datoteka poišče iz oddaljenega repozitorija, nato pa se kopira v lokalni repozitorij in se drugič ne poišče več. Lokacija lokalnega repozitorija je "C:\Users\user\.m2".

Če želite spremeniti namembni kraj glede na privzeto vrednost, ga lahko spremenite tudi tako, da v pom.xml vključite naslednjo oznako repozitorijeva.

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. Mehanizmi za reševanje odvisnosti JAR datoteke, ki ga je treba pridobiti.

Pravkar smo opisali primer pridobivanja programa 'poi-3.17.jar', vendar program 'poi-3.17.jar' za delovanje potrebuje program 'commons-collections4-4.1.jar'. To pomeni, da je program 'poi-3.17.jar' odvisen od programa 'commons-collections4-4.1.jar'. Mehanizem za reševanje te odvisnosti je na voljo v repozitorijevu Maven, kjer je shranjena datoteka 'poi-3.17.jar'. URL je naslednji.

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

Mislim, da je shranjena datoteka "poi-3.17.pom", v kateri boste našli informacije, da je "poi-3.17.jar" odvisen od "commons-collections4-4.1.jar". To pomeni, da pri pridobivanju datoteke 'poi-3.17.jar' sistem ne pridobi samo datoteke JAR, temveč tudi datoteko pom in preveri druge potrebne datoteke jar.

2. povzetek

Mavenov mehanizem za reševanje odvisnosti od knjižnic JAR je, da so odvisnosti opredeljene v datoteki pom, v kateri so shranjene datoteke JAR, ki jih je treba pridobiti.

Upamo, da je bila razlaga koristna.