Ako Maven rieši tranzitívne závislosti z repozitárov


Dátum vydania:

Aktualizované:


Technické články > Ako Maven rieši tranzitívne závislosti z repozitárov

Stav 2026 a bezpečné používanie

Záver: Maven neobjavuje ľubovoľné súbory JAR podľa názvu súboru. Vyrieši deklarované súradnice, stiahne artefakt POM, sleduje závislosti POM, aplikuje rozsah a voliteľné pravidlá a používa sprostredkovanie závislostí, keď viaceré cesty vyžadujú rôzne verzie.

Čo sa naučíte

  • Ako sa lokálne, centrálne, zrkadlové a súkromné úložiská podieľajú na riešení.
  • Prečo POM závislosti – nie samotný JAR – popisuje väčšinu prechodných požiadaviek.
  • Ako skontrolovať efektívny graf pred prepísaním verzie.

Pre koho je to určené: Používatelia Maven, ktorí chcú pochopiť, odkiaľ pochádzajú stiahnuté artefakty a prečo sa objavujú ďalšie knižnice.

Kontext v roku 2026: Staršie súradnice POI Apache uvedené nižšie zostávajú užitočné ako historický príklad, nie ako odporúčanie verzie. Použite aktuálne podporované závislosti, dôveryhodné úložiská HTTPS, ovládacie prvky kontrolného súčtu/podpisu, ak sú k dispozícii, a zásady aktualizácie závislostí.

Bezpečnostná poznámka: Príkazy a príklady konfigurácie v pôvodnom článku neboli znovu spustené v aktuálnom produkčnom prostredí. Pred ich použitím overte podporované verzie, zálohy, riadenie prístupu a kroky vrátenia v samostatnom testovacom prostredí.

Hlavné oficiálne zdroje

Prehľad.

Maven automaticky sťahuje nádoby z internetu, ale rád by som vysvetlil, ako to presne funguje.

Predpokladom tohto článku je, že musíte pochopiť, čo je Maven, takže ak nepoznáte samotný Maven, mali by ste si prečítať aj nasledujúci článok.

Čo je Maven a čo robí?

Obsah

  1. Schopnosť programu Maven vyriešiť závislosti knižníc jar.
  2. zhrnutie

1. Schopnosť programu Maven vyriešiť závislosti knižníc jar.

Maven môže automaticky načítať súbory JAR jednoduchým definovaním požadovaných súborov JAR v súbore pom.xml. Automaticky sa tiež naučí závislé nádoby potrebné na spustenie tejto nádoby. Rád by som vysvetlil, ako to funguje.

1-1. Čo zahrnúť do súboru pom.xml.

Najprv je potrebné vyriešiť závislosť knižnice JAR, informácie sú uvedené v súbore pom.xml. Maven spracuje informácie zo súboru pom.xml. Ak sa vyžaduje napríklad súbor "poi-3.17.jar", je v pom.xml opísaný takto. (Mimochodom, 'poi-3.17.jar' je JAR používaný na manipuláciu so súbormi Microsoft Office, napríklad Excel.)

pom.xml


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

Jednoduchým uvedením vyššie uvedeného sa z internetu stiahne súbor "poi-3.17.jar" a z internetu sa stiahne aj sprievodný súbor JAR, ktorý je potrebný na spustenie súboru "poi-3.17.jar".

1-2. Ako sa sťahujú z internetu?

Jednoduché vysvetlenie systému je znázornené na nasledujúcom obrázku.

Úložisko Maven.

Stiahnutie z repozitárov Maven dostupných na internete. Ak nie je nastavené nič, predvolená hodnota je Centrálne úložisko. Adresa URL je nasledovná.

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

Ak máte záujem, zoznam úložísk dostupných na internete nájdete na tejto webovej stránke.

https://mvnrepository.com/repos

Pri prvom načítaní sa JAR načíta z externého úložiska, ale pri druhom načítaní sa skopíruje do miestneho úložiska a už sa nenaťahuje. Umiestnenie miestneho úložiska je "C:\Users\user\.m2".

Ak chcete zmeniť cieľové miesto z predvolenej hodnoty, môžete ho zmeniť aj tak, že do súboru pom.xml vložíte nasledujúcu značku úložiska.

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. Mechanizmy na riešenie závislostí nádoby, ktorá sa má získať.

Práve sme opísali príklad získania 'poi-3.17.jar', ale 'poi-3.17.jar' vyžaduje na spustenie 'commons-collections4-4.1.jar'. To znamená, že 'poi-3.17.jar' závisí od 'commons-collections4-4.1.jar'. Mechanizmus na vyriešenie tejto závislosti nájdete v úložisku Maven, kde je uložený súbor 'poi-3.17.jar'. Adresa URL je nasledovná.

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

Myslím, že je uložený súbor "poi-3.17.pom" a v tomto súbore nájdete informáciu, že "poi-3.17.jar" závisí od "commons-collections4-4.1.jar". To znamená, že pri načítaní súboru 'poi-3.17.jar' systém načíta nielen súbor JAR, ale aj súbor pom a skontroluje, či sú k dispozícii ďalšie potrebné súbory JAR.

2. zhrnutie

Mechanizmus riešenia závislostí knižníc JAR v programe Maven spočíva v tom, že závislosti sú definované v súbore pom, v ktorom sú uložené súbory JAR, ktoré sa majú načítať.

Ďakujeme vám za sledovanie až do konca.