Apache Maven Standard-Verzeichnislayout

Apache Maven Standard-Verzeichnislayout

1. Einführung

Apache Maven ist eines der beliebtesten Build-Tools für Java-Projekte. Neben der bloßen Dezentralisierung von Abhängigkeiten und Repositorys ist auch die Förderung einer projektübergreifenden einheitlichen Verzeichnisstruktur ein wichtiger Aspekt.

In diesem kurzen Artikel untersuchen wir das Standardverzeichnislayout eines typischen Maven-Projekts.

2. Verzeichnislayout

Ein typisches Maven-Projekt hat einepom.xml-Datei und eine Verzeichnisstruktur, die auf definierten Konventionen basiert:

└───maven-project
    ├───pom.xml
    ├───README.txt
    ├───NOTICE.txt
    ├───LICENSE.txt
    └───src
        ├───main
        │   ├───java
        │   ├───resources
        │   ├───filters
        │   └───webapp
        ├───test
        │   ├───java
        │   ├───resources
        │   └───filters
        ├───it
        ├───site
        └───assembly

Das Standardverzeichnislayout kann mithilfe von Projektdeskriptoren überschrieben werden. Dies ist jedoch ungewöhnlich und wird nicht empfohlen.

In diesem Artikel werden wir weitere Details zu jeder Standarddatei und jedem Unterverzeichnis aufdecken.

3. Das Stammverzeichnis

Dieses Verzeichnis ist das Stammverzeichnis jedes Maven-Projekts.

Schauen wir uns die Standarddateien und Unterverzeichnisse genauer an, die normalerweise im Stammverzeichnis zu finden sind:

  • maven-project/pom.xml - Definiert Abhängigkeiten und Module, die während des Build-Lebenszyklus eines Maven-Projekts benötigt werden

  • maven-project/LICENSE.txt - Lizenzinformationen des Projekts

  • maven-project/README.txt - Zusammenfassung des Projekts

  • maven-project/NOTICE.txt - Informationen zu Bibliotheken von Drittanbietern, die im Projekt verwendet werden

  • maven-project/src/main - enthält Quellcode und Ressourcen, die Teil des Artefakts werden

  • maven-project/src/test - enthält den gesamten Testcode und die Ressourcen

  • maven-project/src/it - normalerweise für Integrationstests reserviert, die vonMaven Failsafe Plugin verwendet werden

  • maven-project/src/site - Site-Dokumentation, die mitMaven Site Plugin erstellt wurde

  • maven-project/src/assembly - Baugruppenkonfiguration für Paketbinärdateien

4. Dassrc/main-Verzeichnis

Wie der Name schon sagt, istsrc/main das wichtigste Verzeichnis eines Maven-Projekts. Alles, was Teil eines Artefakts sein soll, sei es einjar oderwar, sollte hier vorhanden sein.

Seine Unterverzeichnisse sind:

  • src/main/java - Java-Quellcode für das Artefakt

  • src/main/resources - Konfigurationsdateien und andere wiei18n-Dateien, Konfigurationsdateien pro Umgebung und XML-Konfigurationen __

  • src/main/webapp - enthält für Webanwendungen Ressourcen wie JavaScript, CSS, HTML-Dateien, Ansichtsvorlagen und Bilder

  • src/main/filters - enthält Dateien, die während der Erstellungsphase Werte in Konfigurationseigenschaften im Ressourcenordner einfügen

5. Dassrc/test-Verzeichnis __

Das Verzeichnissrc/test ist der Ort, an dem sich Tests für jede Komponente in der Anwendung befinden.

Beachten Sie, dass keines dieser Verzeichnisse oder Dateien Teil des Artefakts wird. Sehen wir uns die Unterverzeichnisse an:

  • src/test/java - Java-Quellcode für Tests

  • src/test/resources - Konfigurationsdateien und andere von Tests verwendete

  • src/test/filters - enthält Dateien, die während der Testphase Werte in Konfigurationseigenschaften im Ressourcenordner einfügen

6. Fazit

In diesem Artikel haben wir uns das Standardverzeichnislayout für ein Apache Maven-Projekt angesehen.

Mehrere Beispiele für Maven-Projektstrukturen finden Sie inGitHub project.