Hogyan oldja fel a Maven a tranzitív függőségeket a tárolókból


Közzétéve:

Frissítve:


Cikkek › Hogyan oldja fel a Maven a tranzitív függőségeket a tárolókból

A 2026-os helyzet és biztonságos használat

Következtetés: A Maven nem pusztán fájlnév alapján keres JAR-fájlokat. Feloldja a deklarált koordinátákat, letölti az artefaktum POM-ját, követi az abban leírt függőségeket, alkalmazza a scope és optional szabályokat, és verziót választ, ha több útvonal eltérő verziókat kér.

Amit megtudhat

  • Hogyan vesz részt a feloldásban a helyi és a központi adattár, valamint a mirror és a privát adattárak.
  • Miért a függőségek POM-ja – nem maga a JAR – írja le a legtöbb tranzitív követelményt.
  • Hogyan ellenőrizhető a tényleges függőségi gráf egy verzió felülbírálása előtt.

Kinek szól a cikk: Maven-felhasználóknak, akik szeretnék megérteni, honnan származnak a letöltött artefaktumok, és miért jelennek meg további könyvtárak.

Aktuális helyzet 2026-ban: Az alábbi régebbi Apache POI-koordináták történeti példák, nem verzióajánlások. Használjon támogatott függőségeket és megbízható HTTPS-adattárakat, ellenőrizze az ellenőrzőösszeget vagy az aláírást, ha rendelkezésre áll, és alkalmazzon függőségfrissítési szabályzatot.

Biztonsági megjegyzés: Az eredeti cikk parancsait és konfigurációs példáit nem futtattuk újra modern éles környezetben. Alkalmazás előtt ellenőrizze a támogatott verziókat, készítsen biztonsági másolatot, és külön tesztkörnyezetben készítse elő a visszaállítást.

Hivatalos források

Áttekintés

A Maven automatikusan tölti le a jareket az internetről, de a következőkben bemutatjuk, hogyan is működik ez pontosan.

Ennek a cikknek a kiindulópontja az, hogy meg kell értened, mi is az a Maven, ezért ha nem ismered magát a Maven-t, akkor a következő cikket is érdemes elolvasnod.

Mi az a Maven és mit csinál a Maven?

Tartalomjegyzék

  1. A Maven képessége a JAR-könyvtárfüggőségek feloldására.
  2. Összefoglalás

1. A Maven képessége a JAR-könyvtárfüggőségek feloldására.

A Maven automatikusan le tudja hívni a JAR-fájlokat, ha egyszerűen meghatározza a szükséges JAR-fájlokat a pom.xml fájlban. Automatikusan megtanulja az adott JAR-fájl futtatásához szükséges tranzitív függőségeket is. A következőkben bemutatjuk, hogyan működik.

1-1. Mit kell felvenni a pom.xml fájlba.

Először is, a JAR-könyvtár függőségének feloldásához a pom.xml fájlban kell információt szolgáltatni. A Maven feldolgozza a pom.xml fájlból származó információkat. Ha például a "poi-3.17.jar" szükséges, akkor a pom.xml a következőképpen írja le. (A 'poi-3.17.jar' egyébként egy olyan jar, amelyet a Microsoft Office fájlok, például az Excel manipulálására használnak).

pom.xml


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

A fentiek egyszerű megemlítése letölti a "poi-3.17.jar"-t az internetről, és a "poi-3.17.jar" futtatásához szükséges függőségként szükséges JAR-fájl-t is letölti az internetről.

1-2. Hogyan töltik le őket az internetről?

A rendszer egyszerű magyarázata az alábbi ábrán látható.

Maven-tárhely.

Letöltés az interneten elérhető Maven tárolókból. Ha nincs megadva semmi, az alapértelmezett érték a Központi tároló. Az URL a következő.

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

Ha érdekli, az alábbi weboldalon megtalálja az interneten elérhető tárolók listáját.

https://mvnrepository.com/repos

Az első alkalommal a jar egy külső tárolóból kerül lekérésre, de a második alkalommal a helyi tárolóba másolódik, és nem kerül lekérésre. A helyi tároló helye "C:\Users\user\.m2".

Ha meg akarja változtatni a célállomást az alapértelmezett értéktől, akkor a következő repository tag beillesztésével a pom.xml-be is megváltoztathatja a célállomást.

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. A letöltendő JAR-fájl függőségének feloldására szolgáló mechanizmusok.

Az imént leírtunk egy példát a 'poi-3.17.jar' beszerzésére, de a 'poi-3.17.jar' futtatásához a 'commons-collections4-4.1.jar' szükséges. Ez azt jelenti, hogy a 'poi-3.17.jar' függ a 'commons-collections4-4.1.jar'-től. A függőség feloldásának mechanizmusa megtalálható a Maven tárolóban, ahol a 'poi-3.17.jar' tárolódik. Az URL a következő.

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

Azt hiszem, a "poi-3.17.pom" van tárolva, és ebben a fájlban találsz információt arról, hogy a "poi-3.17.jar" függ a "commons-collections4-4.1.jar"-tól. Ez azt jelenti, hogy a 'poi-3.17.jar' lekérdezésekor a rendszer nem csak a JAR-fájlt, hanem a pom fájlt is lekérdezi, és ellenőrzi a többi szükséges JAR-fájlt.

2. összefoglaló

A Maven mechanizmusa a JAR-könyvtárak függőségének feloldására az, hogy a függőségeket a pom fájlban definiálja, ahol a lekérdezendő JAR-fájlok tárolódnak.

Ezek a legfontosabb figyelembe veendő lépések és korlátozások.