Wie Maven automatisch die Abhängigkeiten von Jar-Bibliotheken auflöst.
Datum der Veröffentlichung:
Aktualisiert:
Fachartikel > Wie Maven automatisch die Abhängigkeiten von Jar-Bibliotheken auflöst.
Status 2026 und sichere Verwendung
Fazit: Maven erkennt keine beliebigen JARs anhand des Dateinamens. Es löst deklarierte Koordinaten auf, lädt das Artefakt-POM herunter, folgt den Abhängigkeiten dieses POM, wendet Bereichs- und optionale Regeln an und verwendet die Abhängigkeitsvermittlung, wenn mehrere Pfade unterschiedliche Versionen anfordern.
Was Sie lernen werden
- Wie lokale, zentrale, gespiegelte und private Repositorys an der Lösung beteiligt sind.
- Warum das POM einer Abhängigkeit – nicht das JAR selbst – die meisten transitiven Anforderungen beschreibt.
- So überprüfen Sie das effektive Diagramm, bevor Sie eine Version überschreiben.
Für wen ist dies gedacht: Maven-Benutzer, die verstehen möchten, woher heruntergeladene Artefakte stammen und warum zusätzliche Bibliotheken angezeigt werden.
2026-Position: Die unten aufgeführten älteren Apache-POI-Koordinaten dienen weiterhin als historisches Beispiel und nicht als Versionsempfehlung. Verwenden Sie aktuell unterstützte Abhängigkeiten, vertrauenswürdige HTTPS-Repositorys, Prüfsummen-/Signaturkontrollen, sofern verfügbar, und eine Richtlinie zur Abhängigkeitsaktualisierung.
Sicherheitshinweis: Die Befehle und Konfigurationsbeispiele im Originalartikel wurden nicht in einer aktuellen Produktionsumgebung erneut ausgeführt. Überprüfen Sie unterstützte Versionen, Backups, Zugriffskontrollen und Rollback-Schritte in einer separaten Testumgebung, bevor Sie sie anwenden.
Offizielle Primärquellen
Überblick
Maven lädt JAR-Dateien aus entfernten Repositories. Dieser Abschnitt erklärt die Auflösung der Abhängigkeiten.
Eine kurze Einführung in Maven finden Sie im folgenden Grundlagenartikel.
Was ist Maven und was macht Maven?
Inhaltsübersicht
1. Wie Maven JAR-Abhängigkeiten auflöst
Nach der Deklaration eines JAR in der pom.xml lädt Maven das Artefakt und löst dessen transitive Abhängigkeiten auf. Der folgende Abschnitt erklärt diesen Ablauf.
1-1. Abhängigkeiten in pom.xml deklarieren
Maven löst Artefakte anhand der in pom.xml angegebenen Koordinaten auf. Apache POI 3.17, eine Bibliothek zur Verarbeitung von Microsoft-Office-Dateien wie Excel, wird beispielsweise so deklariert:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
Maven lädt poi-3.17.jar und löst anhand des zugehörigen POM auch transitive Laufzeitabhängigkeiten auf. Für neue Projekte sollte eine noch unterstützte Version gewählt und ihre Kompatibilität geprüft werden.
1-2. Artefakte aus Repositories laden
Die folgende Abbildung zeigt den grundlegenden Ablauf.
Öffentliche Artefakte lädt Maven standardmäßig aus dem Central Repository:
https://repo1.maven.org/maven2/
Der folgende Drittanbieterindex hilft bei der Artefaktsuche. Für die Repository-Konfiguration sind jedoch die offiziellen Projekt- oder Organisationsvorgaben maßgeblich.
https://mvnrepository.com/repos
Beim ersten Auflösen werden Artefakte im lokalen Repository zwischengespeichert. Unter Windows liegt es standardmäßig im Benutzerverzeichnis unter „.m2\repository“, nicht direkt unter „.m2“.
Weitere entfernte Repositories können bei Bedarf in pom.xml eingetragen werden. Für reproduzierbare und sichere Builds sollten nur vertrauenswürdige Quellen verwendet werden.
<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. Transitive Abhängigkeiten auflösen
poi-3.17.jar benötigt unter anderem commons-collections4-4.1.jar. Maven liest dazu die POM-Metadaten im Versionsverzeichnis und erstellt daraus den Abhängigkeitsgraphen:
https://repo1.maven.org/maven2/org/apache/poi/poi/3.17/
poi-3.17.pom deklariert die direkten Abhängigkeiten. Maven liest diese Datei zusammen mit dem Hauptartefakt und löst die benötigten Artefakte rekursiv auf. Versionskonflikte werden nach den Regeln der Maven Dependency Mediation entschieden.
2. Zusammenfassung
Maven erstellt aus den Koordinaten und Abhängigkeitsdeklarationen der POM-Dateien einen Abhängigkeitsgraphen und speichert heruntergeladene Artefakte im lokalen Repository.
