Damit genug von der POM-Datei. Jetzt soll ein Blick auf das src-Verzeichnis geworfen werden.
Das src-Verzeichnis in einem Maven-Projekt enthält sämtlichen Quellcode, konkret im Verzeichnis main, mit einem weiteren Unterverzeichnis namens java für Java-Quellcode und webapp mit Code für die Webanwendung. Die einzige Ausnahme ist Testcode, der in einem parallelen Zweig im Verzeichnis test untergebracht ist. Wie zu sehen ist, gibt es kein Bibliotheks-Verzeichnis für jar-Dateien, weil man bei Maven keines benötigt.
Für Maven stellt sich die Welt als Repositories aus jar/war/ear-Dateien dar, jeweils mit einer eigenen Gruppen-ID, Artefakt-ID und Versionsnummer. Diese Dateien werden Artefakte genannt. Es gibt ein lokales Repository, normalerweise in einem m2-Verzeichnis im home-Verzeichnis. Mavens Ziel beim Build eines Projekts ist es, ein Artefakt zu erstellen, das in dieses Repository installiert werden kann, so dass andere Projekte es nutzen können. Es gibt auch Remote Repositories, aus denen Maven Kopien von Artefakten beziehen kann um sie in das lokale Repository zu installieren, auch hier wieder mit dem Ziel, dass andere Projekte diese verwenden können.
Maven erkennt selber, welche Artefakte benötigt werden, durch einen anderen Abschnitt in der Datei pom.xml, dem Abschnitt über Abhängigkeiten (dependencies).
Dies ist eine einfache Abhängigkeit, die jdbm einbindet. Maven sucht standardmäßig unter http://www.ibiblio.org/maven2/ nach Abhängigkeiten. Wer dort einen Blick in das Verzeichnis jdbm/jdbm/1.0/ wirft, wird die Datei jdbm-1.0.jar finden. Diese Datei ruft Maven ab, zusammen mit einer kurzen pom.xml-Datei für jdbm, in der gegebenenfalls Abhängigkeiten dieses Artefakts selber aufgeführt sind. Man kann das ibiblio-Repository auch manuell durchsuchen oder zu diesem Zweck auf eine Website wie MVN Registry zurückgreifen.
Die nächste Abhängigkeit ist dwr, das allerdings nicht im ibiblio-Repository zu finden ist. Daher muss es im eigenen, lokalen Repository installiert werden.
Die nächste Abhängigkeit ist die Java-Servlet-API. Diese ist zwar in ibiblio vorhanden, sie wird aber nur beim Build des Projekts benötigt, weil die Servlet-API bei der Installation auf einem Webserver bereits vorhanden ist.
Das scope-Element ermöglicht das Angeben der Information, wann dieses Artefakt benötigt wird. „Provided“ bedeutet also, dass das Artefakt von der Laufzeitumgebung bereitgestellt wird. Ein weiterer möglicher Gültigkeitsbereich ist „test“, was bedeutet, dass das Artefakt nur zu Testzwecken benötigt wird. Auf diese Weise wird zum Beispiel Junit eingebunden:
Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…
Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…
Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…
Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.
Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…
Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.