0Pricing
Java Academy · Lektion

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 in target/ 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

  1. Maven-Projektstruktur
  2. Maven-Plugins und Goals
  3. Gradle-Grundlagen
  4. Ein Build-Tool auswählen
← Zurück zu Java Academy