Maven-Projektstruktur
POM, Lebenszyklus und Abhängigkeiten
Maven-Projektstruktur ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Maven-Projektstruktur
Maven ist ein Build-Tool und Abhängigkeitsmanager, der auf einem einzigen Prinzip beruht: Konvention vor Konfiguration. Wenn Sie das Standardlayout einhalten, funktioniert das meiste ohne nennenswerten Konfigurationsaufwand. Diese Lektion behandelt das Layout, das POM und die Abhängigkeitsverwaltung.
Das Standardverzeichnislayout
Maven erwartet eine feste Struktur:
src/main/java— Quellcode der Produktion.src/main/resources— Ressourcen der Produktion.src/test/java— Testquellcode.target/— Build-Ausgabe (generiert).
Das POM
Das Herzstück eines Maven-Projekts ist pom.xml — das Project Object Model. Darin werden Koordinaten, Abhängigkeiten, Plugins und Build-Einstellungen in XML deklariert.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
</project>Koordinaten: GAV
Jedes Artefakt wird durch groupId, artifactId und version (GAV) identifiziert. Diese Koordinaten benennen Ihr Projekt und jede eingebundene Abhängigkeit eindeutig.
Abhängigkeiten deklarieren
Abhängigkeiten werden innerhalb von <dependencies> aufgelistet. Maven lädt sie — einschließlich ihrer transitiven Abhängigkeiten — aus Repositories wie Maven Central in einen lokalen Cache herunter.
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
</dependencies>Abhängigkeitssichtbarkeiten
Die Sichtbarkeit steuert, wann eine Abhängigkeit auf dem Classpath liegt:
- compile — überall (Standard).
- provided — nur zur Kompilierzeit; wird zur Laufzeit vom Container bereitgestellt.
- runtime — zur Laufzeit und für Tests, nicht zur Kompilierzeit.
- test — nur für Testkompilierung und -ausführung.
Transitive Abhängigkeiten
Wenn A von B und B von C abhängt, stellt Maven Ihnen C automatisch bereit — das ist Transitivität. Bei Versionskonflikten löst Maven sie anhand der nächstgelegenen Definition im Abhängigkeitsbaum auf.
Der Build-Lebenszyklus
Maven definiert einen geordneten Lebenszyklus aus Phasen. Der Standardlebenszyklus umfasst (in dieser Reihenfolge): validate, compile, test, package, verify, install, deploy. Beim Ausführen einer Phase werden auch alle vorherigen Phasen ausgeführt.
Häufige Befehle
mvn compile— Hauptquellcode kompilieren.mvn test— Unit-Tests ausführen.mvn package— das JAR/WAR intarget/erstellen.mvn install— das Artefakt für andere Projekte in das lokale Repository kopieren.
Das lokale Repository
Heruntergeladene Artefakte werden in ~/.m2/repository zwischengespeichert. Nachfolgende Builds verwenden diesen Cache erneut, statt die Artefakte nochmals herunterzuladen. mvn install legt Ihr eigenes Artefakt dort ab, damit Schwesterprojekte davon abhängen können.
Multi-Modul-Projekte
Ein übergeordnetes POM mit <packaging>pom</packaging> kann untergeordnete <modules> auflisten. Maven erstellt sie in Abhängigkeitsreihenfolge, sodass ein großes System Konfiguration und Versionen zentral gemeinsam nutzen kann.
Kurzer Test
Testen Sie Ihr Verständnis der Maven-Struktur.
Zusammenfassung
Sie haben die Grundlagen von Maven gelernt:
- Konvention vor Konfiguration mit dem standardmäßigen Layout
src/main/java. - Das POM deklariert GAV-Koordinaten, Abhängigkeiten und Plugins.
- Sichtbarkeiten (compile, provided, runtime, test) steuern die Sichtbarkeit auf dem Classpath.
- Abhängigkeiten sind transitiv; Konflikte werden anhand der nächstgelegenen Definition aufgelöst.
- Der geordnete Lebenszyklus bedeutet, dass eine Phase alle vorherigen Phasen ausführt.
Häufig gestellte Fragen
Ist die Lektion „Maven-Projektstruktur“ kostenlos?
Ja — der vollständige Text von „Maven-Projektstruktur“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Maven-Projektstruktur“?
POM, Lebenszyklus und Abhängigkeiten Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Java Academy zu starten?
Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Maven-Projektstruktur“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?
Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Maven-Projektstruktur
- Maven-Plugins und Goals
- Gradle-Grundlagen
- Ein Build-Tool auswählen