Kuidas Maven lahendab ülekantud sõltuvusi hoidlatest
Avaldatud:
Uuendatud:
Artiklid › Kuidas Maven lahendab ülekantud sõltuvusi hoidlatest
Olukord 2026. aastal ja ohutu kasutamine
Järeldus: Maven ei leia JAR-faile üksnes failinime järgi. Maven lahendab deklareeritud koordinaadid, laadib alla artefakti POM-i, järgib seal kirjeldatud sõltuvusi, rakendab scope'i ja optional-reegleid ning valib versiooni, kui mitu teed nõuavad eri versioone.
Mida õpid
- Kuidas osalevad lahendamises kohalik ja keskne repositoorium ning mirror- ja privaatrepositooriumid.
- Miks kirjeldab sõltuvuse POM, mitte JAR ise, enamikku transitiivseid sõltuvusi.
- Kuidas kontrollida tegelikku sõltuvusgraafi enne versiooni ülekirjutamist.
Kellele artikkel on mõeldud: Maveni kasutajad, kes soovivad mõista, kust allalaaditud artefaktid pärinevad ja miks täiendavad teegid ilmuvad.
Olukord 2026. aastal: Allpool olevad vanemad Apache POI koordinaadid on ajalooline näide, mitte versioonisoovitus. Kasutage toetatud sõltuvusi ja usaldusväärseid HTTPS-repositooriume, kontrollige võimaluse korral kontrollsummat või allkirja ning rakendage sõltuvuste uuendamise poliitikat.
Ohutusmärkus: Algse artikli käske ja seadistusnäiteid ei ole tänapäevases tootmiskeskkonnas uuesti käivitatud. Enne rakendamist kontrolli toetatud versioone, tee varukoopia ja valmista eraldi testkeskkonnas ette tagasipööramise plaan.
Ametlikud allikad
Ülevaade
Maven laeb automaatselt internetist JAR-failid alla, kuid ma järgnevalt selgitatakse, kuidas see täpselt toimib.
Selle artikli eelduseks on, et te peate mõistma, mis on Maven, nii et kui te ei ole Maveniga ise tuttav, peaksite tutvuma ka järgmise artikliga.
Mis on Maven ja mida Maven teeb?
Sisukord
1. Maveni võime lahendada JAR-teekide sõltuvusi.
Maven saab JAR-failid automaatselt kätte, määrates lihtsalt vajalikud JAR-failid pom.xml-failis. Samuti õpib see automaatselt ära transitiivsed sõltuvused, mida on vaja selle purgi käivitamiseks. Järgnevalt selgitatakse, kuidas see toimib.
1-1. Mida lisada pom.xml faili.
Esiteks, et lahendada JAR-teegi sõltuvus, esitatakse teave pom.xml-failis. Maven töötleb teavet pom.xml-failist. Kui näiteks "poi-3.17.jar" on nõutav, kirjeldatakse seda pom.xmlis järgmiselt. (Muide, 'poi-3.17.jar' on jar, mida kasutatakse Microsoft Office'i failide, näiteks Exceli manipuleerimiseks).
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
Lihtsalt mainides ülaltoodut, laetakse internetist alla "poi-3.17.jar" ning samuti laetakse internetist alla kaasnev jar, mis on vajalik "poi-3.17.jar" käivitamiseks.
1-2. Kuidas neid internetist alla laetakse?
Süsteemi lihtne selgitus on esitatud alljärgneval joonisel.
Laadige Maveni repositooriumidest, mis on saadaval Internetis. Kui midagi ei ole määratud, on vaikimisi väärtus Central Repository. URL on järgmine.
https://repo1.maven.org/maven2/
Kui olete huvitatud, vaadake järgmist veebisaiti, kus on nimekiri internetis kättesaadavatest repositooriumidest.
https://mvnrepository.com/repos
Esimesel korral hangitakse JAR-fail välisest repositooriumist, kuid see kopeeritakse kohalikku repositooriumi ja alates teisest korrast seda enam ei hangita. Kohaliku repositooriumi asukoht on "C:\Users\user\.m2".
Kui soovite sihtkohta vaikimisi väärtusest muuta, saate sihtkohta muuta, lisades pom.xml-i järgmise repositooriumi sildi.
<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. Mehhanismid allalaaditava JAR-faili sõltuvuste lahendamiseks.
Me kirjeldasime just näidet 'poi-3.17.jar' saamiseks, kuid 'poi-3.17.jar' vajab käivitamiseks 'commons-collections4-4.1.jar'. See tähendab, et 'poi-3.17.jar' sõltub 'commons-collections4-4.1.jar'-ist. Selle sõltuvuse lahendamise mehhanism on leitav Maveni repositooriumist, kus on salvestatud 'poi-3.17.jar'. URL on järgmine.
https://repo1.maven.org/maven2/org/apache/poi/poi/3.17/
Ma arvan, et "poi-3.17.pom" on salvestatud ja selles failis on teave, et "poi-3.17.jar" sõltub "commons-collections4-4.1.jar". See tähendab, et kui süsteem otsib 'poi-3.17.jar', ei otsi süsteem mitte ainult JAR-faili, vaid ka pom-faili ja kontrollib teisi vajalikke JAR-faile.
2. kokkuvõte
Maveni mehhanism JAR-teekide sõltuvuste lahendamiseks seisneb selles, et sõltuvused määratletakse pom-failis, kuhu on salvestatud hangitavad JAR-failid.
Need on peamised sammud ja piirangud, mida tuleb arvestada.
■Artiklid
■Profiil
■Kontakt
