Ako Maven automaticky rieši závislosti knižníc jar.


Dátum vydania:17. januára 2021.



INFOMARTION > Ako Maven automaticky rieši závislosti knižníc jar.

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.

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.