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.
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).
<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ó.
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.
<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.
■Cikkek
■Profil
■Kapcsolat
