Apache Maven Standard-Verzeichnislayout

1. Einleitung

Apache Maven ist eines der beliebtesten Build-Tools für Java-Projekte. Neben der Dezentralisierung von Abhängigkeiten und Repositorys ist die Förderung einer einheitlichen Verzeichnisstruktur über Projekte hinweg einer der wichtigsten Aspekte.

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

2. Verzeichnislayout

Ein typisches Maven-Projekt verfügt über eine pom.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 dient als Stammverzeichnis jedes Maven-Projekts.

Schauen wir uns die Standarddateien und Unterverzeichnisse genauer an, die sich normalerweise im Stammverzeichnis befinden:

  • 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 vom Maven Failsafe Plugin verwendet werden
  • maven-project / src / site - Site-Dokumentation, die mit dem Maven Site Plugin erstellt wurde
  • maven-project / src / Assembly - Assemblykonfiguration für das Packen von Binärdateien

4. Das src / main- Verzeichnis

Wie der Name schon sagt, ist src / main das wichtigste Verzeichnis eines Maven-Projekts. Alles, was Teil eines Artefakts sein soll, sei es ein Glas oder ein Krieg , sollte hier vorhanden sein.

Seine Unterverzeichnisse sind:

  • src / main / java - Java-Quellcode für das Artefakt
  • src / main / resources - Konfigurationsdateien und andere wie i18n- 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 / filter - enthält Dateien, die während der Erstellungsphase Werte in Konfigurationseigenschaften im Ressourcenordner einfügen

5. Das src / test- Verzeichnis

Das Verzeichnis src / test ist der Ort, an dem sich die Tests jeder 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 / filter - 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.

Im GitHub-Projekt finden Sie mehrere Beispiele für Maven-Projektstrukturen.