50 % Rabatt auf alle Pläne, begrenzte Zeit. Ab $2.48/mo
Noch 18 Min.
Web- & Business-Apps

Maven meistern: Ausführliche Commands, Optionen und Cheatsheet für effiziente Entwicklung

Ada Lovegood By Ada Lovegood 18 Min. Lesezeit Aktualisiert am 23. Feb. 2025
mvn-Befehle: Ein Leitfaden

Automatisierungs- und Entwicklungstools gehören zu den wichtigsten Bestandteilen eines Projekts. In diesem Beitrag geht es um Maven: ein leistungsstarkes Automatisierungstool für Java-Projekte. Maven vereinfacht den Build-Prozess und sorgt für eine einheitliche Projektstruktur, was die Verwaltung und das Verständnis von Projekten deutlich erleichtert. Dieser Leitfaden deckt ein breites Spektrum an Maven-Befehlen und -Optionen ab, die deinen Entwicklungsworkflow optimieren. Wir behandeln unter anderem Server- und Container-Management, Source Control Management (SCM) sowie GPG zum Signieren von Artefakten. Außerdem befassen wir uns mit speziellen Befehlen für das Plugin-Management, Assembly & Distribution sowie die Generierung von Projektseiten und Berichten. Am Ende dieses Leitfadens hast du ein fundiertes Verständnis von Maven-Befehlen und -Optionen.

Überblick über Maven: Projekt-Lifecycle

Im Jiddischen bedeutet das Wort Maven "Wissensammler". Diese Bedeutung erklärt die Stärke von Maven als Automatisierungswerkzeug für Java-Projekte perfekt. Maven macht den Build-Prozess und die Projektverwaltung sehr einfach. Das funktioniert durch Automatisierung verschiedener Aufgaben und ein einheitliches Build-System.

Um besser zu verstehen, wie Maven funktioniert, schauen wir uns das Konzept eines Projekt-Objektmodell (POM)POM ist eine XML-Datei mit Projektinformationen und Konfigurationsdetails. Maven nutzt sie als Grundlage für seine Arbeit: Abhängigkeiten, Build-Verzeichnis, Quellverzeichnis, Test-Quellverzeichnis und Ziele werden direkt aus dieser Datei bezogen.

Nachdem das Projekt und seine Abhängigkeiten in pom.xml, wenn du einen Maven-Befehl ausführst, liest Maven die pom-Datei und führt die zugehörige Build-Phase aus. Ein Projekt durchläuft einen langen Lebenszyklus – von der ersten Anlage bis zum eigentlichen Deployment. Dieser Lebenszyklus legt fest, welche Phasen ein Projekt in welcher Reihenfolge durchläuft. Jede Phase steht für einen bestimmten Abschnitt im Lebenszyklus und führt konkrete Aufgaben aus, zum Beispiel den Quellcode kompilieren, Tests ausführen oder den Code in ein auslieferbares Format paketieren. Das macht den Maven-Projektlebenszyklus zu einem zentralen Konzept, das du kennen solltest. Schauen wir uns die Phasen dieses Lebenszyklus genauer an:

  1. Validieren: Diese Phase prüft, ob das Projekt korrekt ist und alle erforderlichen Informationen vorliegen.
  2. Kompilieren: In dieser Phase wird der Quellcode des Projekts kompiliert.
  3. Test: Diese Phase testet den kompilierten Quellcode mithilfe eines geeigneten Unit-Testing-Frameworks.
  4. Paket: In dieser Phase wird der kompilierte Code in sein verteilbares Format verpackt (z. B. JAR, WAR).
  5. Installieren: In der Install-Phase wird das Paket im lokalen Repository installiert und steht anderen Projekten auf demselben Rechner zur Verfügung.
  6. Bereitstellung: Diese Phase kopiert das fertige Paket in das Remote-Repository und stellt es so anderen Entwicklern und Projekten zur Verfügung.

Jede dieser Phasen hat einen zugehörigen mvn-Befehl, den wir in den folgenden Abschnitten dieses Maven-Cheatsheets behandeln. Das sind die wichtigsten Befehle für die Verwaltung des Build-Prozesses deines Projekts.

Dependency-Management

Eines der wichtigsten Features von Maven ist das Dependency-Management. Es vereinfacht die Verwaltung von Projektabhängigkeiten erheblich und hat damit direkten Einfluss auf die Effizienz des Build-Prozesses.

Wie Maven Dependencies verwaltet

Maven verwendet ein zentrales Repository, das als Maven Central Repository, wo eine große Auswahl an Bibliotheken und Plugins bereitgestellt wird. Wenn ein Projekt eine Abhängigkeit benötigt, lädt Maven die erforderlichen Bibliotheken automatisch aus dem zentralen Repository herunter und speichert sie im lokalen Repository. Dieses lokale Repository dient als Cache auf deinem lokalen Rechner und verkürzt die Download-Zeiten für zukünftige Builds.

Abhängigkeiten werden in Maven in der pom.xml einzuordnen unter <dependencies> Abschnitt. Jede Abhängigkeit wird durch einen Satz von Koordinaten definiert: groupId, artifactId, und version.

Dependency-Scopes

Bei der Arbeit mit Maven können Sie den Geltungsbereich von Abhängigkeiten festlegen. Dieser Bereich bestimmt die Sichtbarkeit im Klassenpfad und die zugehörige Lifecycle-Phase. So lässt sich erkennen, welche Phase eine bestimmte Abhängigkeit benötigt. Die gängigen Geltungsbereiche sind:

  • Kompilieren: Dies ist der Standardbereich und wird verwendet, wenn kein Bereich angegeben ist. Abhängigkeiten mit diesem Bereich sind in allen Build-Phasen verfügbar und werden in das finale Paket aufgenommen.
  • Bereitgestellt: Abhängigkeiten mit diesem Bereich werden zur Laufzeit von der Ausführungsumgebung bereitgestellt. Sie werden während der Kompilierung verwendet, sind aber nicht im finalen Paket enthalten.
  • Laufzeit: Diese Abhängigkeiten werden zur Kompilierung nicht benötigt, sind jedoch zur Laufzeit erforderlich. Sie sind im Laufzeit-Klassenpfad enthalten.
  • Test: Diese Abhängigkeiten werden nur zum Kompilieren und Ausführen von Tests benötigt. Sie sind weder im Laufzeit- noch im finalen Paket enthalten.
  • System: Der System-Bereich ähnelt dem Provided-Bereich, jedoch müssen Sie die JAR-Datei selbst angeben, die Maven verwenden soll. Diese JAR-Datei muss im Systempfad vorhanden sein.

Transitive Abhängigkeiten

Eines der stärksten Features von Maven ist die automatische Auflösung transitiver Abhängigkeiten. Wenn ein Projekt eine Abhängigkeit deklariert, bezieht Maven nicht nur diese Abhängigkeit ein, sondern auch deren eigene Abhängigkeiten, deren Abhängigkeiten wiederum, und so weiter. Diese Abhängigkeitskette wird als transitive Abhängigkeiten bezeichnet. Zur Veranschaulichung: Wenn Ihr Projekt von spring-boot-starter-web abhängt, bindet Maven automatisch alle Bibliotheken ein, von denen spring-boot-starter-web seinerseits abhängt, beispielsweise Spring Core, Spring MVC und Jackson.

Nachdem Sie die Theorie hinter dem Abhängigkeitsmanagement von Maven kennen, sehen wir uns an, wie es in der Praxis funktioniert:

mvn dependency:resolve

Dieser Befehl löst alle für Ihr Projekt erforderlichen Abhängigkeiten auf und zeigt sie an. Sie können damit prüfen, von welchen Bibliotheken Ihr Projekt abhängt, und sicherstellen, dass alles korrekt konfiguriert ist.

mvn dependency:tree

Mit diesem Befehl erhalten Sie eine Baumstruktur aller Projektabhängigkeiten. Sie zeigt, wie die einzelnen Abhängigkeiten miteinander zusammenhängen, und hilft dabei, potenzielle Konflikte zu erkennen.

mvn dependency:analyze

Dieser Befehl analysiert die Abhängigkeiten Ihres Projekts und sucht nach nicht verwendeten Artefakten. Er hilft Ihnen, das Projekt aufzuräumen und unnötigen Ballast zu vermeiden.

Das Abhängigkeitsmanagement von Maven vereinfacht Ihren Entwicklungsprozess erheblich. Es hilft Ihnen, typische Fallstricke zu vermeiden und eine saubere, strukturierte Projektorganisation beizubehalten.

Ausführung

Die Ausführung in Maven umfasst das Starten bestimmter Aufgaben oder Ziele innerhalb des Projekts. Diese Aufgaben reichen vom Ausführen von Java-Programmen bis hin zur Ausführung externer Skripte oder Befehle. Maven stellt leistungsfähige Plugins bereit, um diese Ausführungen zu vereinfachen. Das macht Maven zu einem nützlichen Werkzeug für die Automatisierung verschiedener Teile Ihres Projekt-Workflows. Hier sind die wichtigsten Maven-Ausführungsbefehle im Überblick:

mvn exec:java

Mit diesem Befehl wird eine Java-Klasse in Ihrem Projekt ausgeführt. Er eignet sich zum Starten von Hauptklassen oder zum Testen eigenständiger Java-Programme, ohne sie vorher zu paketieren.

mvn exec:exec

Mit diesem Befehl können Sie ein beliebiges externes Programm oder Skript direkt aus der Maven-Umgebung heraus starten. Das ist nützlich, um Shell-Skripte, externe Tools oder andere Programme auszuführen, die Teil Ihres Build-Prozesses sind.

Die Ausführungsbefehle in Maven helfen Ihnen, wiederkehrende Aufgaben zu automatisieren. Außerdem lassen sich damit externe Tools und Skripte in den Maven-Build-Lifecycle integrieren, was die Verwaltung Ihrer Aufgaben deutlich effizienter macht.

Server- und Container-Management

Das Verwalten von Servern und Containern ist ein wichtiger Schritt bei der Entwicklung und dem Deployment von Webanwendungen. Maven erleichtert diesen Prozess durch Plugins, mit denen Sie Webanwendungen direkt aus dem Build-Prozess heraus auf verschiedenen Servern und Containern starten, deployen und verwalten können. Hier sind einige wichtige Maven-Befehle für die Server- und Container-Verwaltung:

mvn tomcat7:run

Dieser Befehl startet Ihre Webanwendung mit Apache Tomcat. Es eignet sich gut für lokale Entwicklung und Tests und ermöglicht es, eine Webanwendung schnell bereitzustellen und zu testen, ohne eine vollständige Serverumgebung einrichten zu müssen.

mvn jetty:run

Dieser Befehl startet deine Webanwendung mit einem weit verbreiteten Webserver namens Jetty. Wie Tomcat ist Jetty dank seiner leichtgewichtigen Architektur und schnellen Bereitstellung ideal für Entwicklung und Tests.

Wie Server- und Container-Management funktioniert

Maven nutzt Plugins wie tomcat7-maven-plugin und jetty-maven-plugin um Server-Operationen zu verwalten. Diese Plugins ermöglichen es, Server im Rahmen des Build-Lifecycles zu starten, zu stoppen und zu konfigurieren. Das macht die Entwicklung und das Testen von Webanwendungen in einer einheitlichen Umgebung deutlich einfacher. Mit Maven-Profilen lassen sich Serverkonfigurationen für verschiedene Umgebungen definieren - das hilft dabei, unterschiedliche Einstellungen für Entwicklung, Test und Produktion zu verwalten. Außerdem können über diese Profile Logging und Monitoring innerhalb der Server-Plugins konfiguriert werden, sodass Serveraktivitäten nachvollziehbar bleiben und Probleme schnell behoben werden können.

SCM (Quellcodeverwaltung)

Ein zentraler Bestandteil jedes Entwicklungsprojekts ist das Source Control Management (SCM). Entwicklungsteams benötigen SCM, um Änderungen am Quellcode im Laufe der Zeit zu verfolgen. Maven bietet eine Reihe von Befehlen zur Interaktion mit SCM-Systemen wie Git, Subversion und anderen. Diese Befehle können verschiedene Aufgaben automatisieren, etwa das Einchecken und Auschecken von Code sowie das Aktualisieren von Projektversionen. Hier sind einige der wichtigsten Maven-SCM-Befehle und ihre Optionen:

mvn scm:checkin

Mit diesem mvn-Befehl werden die Projektänderungen in das SCM eingecheckt. Er automatisiert den Commit-Prozess ins Source-Control-Repository und stellt sicher, dass die neuesten Änderungen gespeichert und mit dem Team geteilt werden.

mvn scm:checkout

Dieser Maven-Befehl checkt den Projektcode aus dem SCM-Repository aus und ist nützlich, um eine lokale Kopie des Projekts zu erhalten. So arbeitest du immer mit der aktuellen Version des Quellcodes.

mvn scm:update

Dieser mvn-Befehl aktualisiert die lokale Arbeitskopie des Projekts mit den neuesten Änderungen aus dem SCM-Repository. Er stellt sicher, dass der lokale Codestand mit dem Repository synchron ist und alle Änderungen anderer Teammitglieder enthält.

mvn scm:status

Dieser mvn-Befehl zeigt den Status der lokalen Arbeitskopie im Vergleich zum SCM-Repository an. Mit anderen Worten: Er listet alle Änderungen auf, die lokal vorgenommen, aber noch nicht ins Repository committed wurden.

mvn scm:tag

Dieser Befehl erstellt einen Tag im SCM-Repository. Tags markieren bestimmte Punkte in der Projekthistorie, etwa Releases oder wichtige Meilensteine.

Maven-SCM-Befehle können die Verwaltung des Projektquellcodes erheblich vereinfachen. Wer diese Befehle kennt und einsetzt, arbeitet effizienter und verbessert die Zusammenarbeit im Entwicklungsteam.

GPG (GNU Privacy Guard)

GNU Privacy Guard (GPG) ist eine kryptografische Software, mit der Benutzer Daten und Kommunikation verschlüsseln und signieren können. Im Maven-Kontext wird GPG verwendet, um Artefakte zu signieren und deren Echtheit und Integrität sicherzustellen. Das ist besonders wichtig beim Veröffentlichen von Artefakten in öffentlichen Repositories, da Nutzer so prüfen können, ob die Artefakte unverändert sind. Maven bietet mehrere Befehle für die Arbeit mit GPG und vereinfacht das Signieren und Veröffentlichen von Projektartefakten. Hier einige Beispiele:

mvn gpg:sign

Mit diesem Maven-Befehl werden die Projektartefakte mit GPG signiert. Die Signierung stellt sicher, dass andere die Artefakte verifizieren können, und schafft eine Vertrauensbasis. Dieser Befehl wird häufig während des Build-Prozesses eingesetzt, um JARs, WARs und andere Artefaktypen vor dem Deployment zu signieren.

mvn gpg:sign-and-deploy-file

Dieser mvn-Befehl kombiniert das Signieren und Veröffentlichen einer Datei in einem einzigen Schritt. Er bietet sich an, wenn ein Artefakt direkt nach dem Signieren in ein Repository deployed werden soll. Das vereinfacht den Ablauf und stellt sicher, dass Signierung und Deployment zusammen erfolgen.

GPG-Signaturen in den Maven-Build-Prozess zu integrieren erhöht die Sicherheit und Verlässlichkeit der Software. Nutzer können Artefakten so leichter vertrauen und deren Echtheit prüfen.

Release-Management

Release-Management ist ein wichtiger Bestandteil der Softwareentwicklung. Mit einem durchdachten Release-Management lässt sich sicherstellen, dass Softwareversionen korrekt verwaltet, paketiert und bereitgestellt werden. Maven bietet eine Reihe von Befehlen, um den Release-Prozess zu automatisieren und zu vereinfachen. Hier einige Beispiele für Maven-Optionen und -Befehle im Release-Management:

mvn release:prepare

Dieser mvn-Befehl bereitet ein Projekt auf ein Release vor. Er prüft dabei, ob uncommittete Änderungen vorhanden sind, aktualisiert die Versionsnummern in den pom.xml Dateien, setzt einen Tag im Source Control Management (SCM) und aktualisiert die pom.xml Dateien auf die nächste Entwicklungsversion. So wird sichergestellt, dass das Projekt stabil und release-bereit ist.

mvn release:perform

Dieser Befehl führt den eigentlichen Release-Prozess aus. Er checkt das Projekt aus dem SCM am Tag aus, der vom release:prepare Der Befehl baut das Projekt und stellt die Artefakte im angegebenen Repository bereit. Er stellt sicher, dass die Artefakte aus dem exakten Code-Zustand zum Zeitpunkt der Release-Vorbereitung erstellt werden.

mvn release:clean

Dieser mvn-Befehl entfernt alle Backup-Dateien des Release-Deskriptors, die während des release:prepare Prozesses erstellt wurden. Er bereinigt die Umgebung und stellt sicher, dass keine Überreste früherer Release-Versuche zurückbleiben. So erhältst du einen sauberen Arbeitsbereich und vermeidest mögliche Probleme bei künftigen Releases.

Der Einsatz von Release-Management-Befehlen vereinfacht den Release-Prozess, verbessert die Softwarequalität und sorgt für eine zuverlässige Verwaltung von Releases.

Archetyp

Wer als Entwickler Projektstrukturen auf Basis vordefinierter Vorlagen erstellen möchte, sollte das Maven Archetype-Plugin in Betracht ziehen. Hier besprechen wir die wichtigsten Maven-Befehle rund um Archetypes.

mvn archetype:generate

Mit diesem mvn-Befehl erstellst du ein neues Projekt aus einer vorhandenen Vorlage, dem sogenannten "Archetype". Der Befehl führt dich durch die Auswahl eines Archetype und die Konfiguration des neuen Projekts. So richtest du schnell ein gut strukturiertes Projekt ein.

mvn archetype:catalog

Dieser Befehl listet verfügbare Archetypes auf, mit denen sich neue Projekte generieren lassen. Er ist nützlich, um die verschiedenen Vorlagen der Maven-Community zu erkunden und den passenden Archetype für dein Projekt zu finden.

Mit diesen beiden Maven-Befehlen kannst du schnell ein neues Projekt starten. Ob einfache Java-Anwendung oder komplexes Enterprise-Projekt: Maven Archetypes bieten einen soliden Ausgangspunkt.

Plugin-Management

Maven-Plugins ermöglichen es Entwicklern, die Funktionalität von Maven zu erweitern und verschiedene Aufgaben im Build-Lifecycle zu automatisieren. Ein sorgfältiges Plugin-Management sorgt dafür, dass dein Projekt wartbar bleibt und Builds reproduzierbar sind. Dieser Abschnitt behandelt die wichtigsten Maven-Befehle für das Plugin-Management.

mvn plugin:download

Dieser Befehl lädt ein bestimmtes Maven-Plugin aus dem Repository herunter. Er ist sinnvoll, wenn du sicherstellen möchtest, dass ein Plugin in deinem lokalen Repository verfügbar ist, bevor du andere Maven-Befehle ausführst, die davon abhängen.

mvn plugin:help

Dieser Maven-Befehl zeigt detaillierte Informationen und Dokumentation zu einem bestimmten Maven-Plugin an. Nutze ihn, wenn du die verfügbaren Goals, Parameter und Konfigurationsmöglichkeiten eines Plugins verstehen möchtest.

Diese Maven-Plugin-Management-Befehle verbessern den Build-Prozess, automatisieren Workflows und sorgen für gleichbleibende Projektqualität und Konsistenz.

Montage & Vertrieb

Die Assembly- und Distributionsfunktionen von Maven ermöglichen es Entwicklern, Projekte in verschiedene Formate zu paketieren. Du kannst damit ausführbare JARs, gebündelte Anwendungen oder eigene Distributionen erstellen, die Abhängigkeiten und weitere Ressourcen enthalten. Hier behandeln wir die wichtigsten Maven-Befehle für Assembly und Distribution.

mvn assembly:assembly

Dieser Befehl erstellt ein Assembly für das Projekt. Ein Assembly ist ein verteilbares Paket, das Binärdateien, Quellcode, Abhängigkeiten und weitere Ressourcen enthalten kann. Der Befehl nutzt das Assembly-Plugin, um diese Pakete auf Basis des angegebenen Assembly-Deskriptors zu erzeugen.

mvn assembly:directory

Dieser mvn-Befehl erstellt die Verzeichnisstruktur des Assembly, ohne die eigentliche Archivdatei zu erzeugen. Er ist nützlich, um Inhalt und Struktur des Assembly vor der Paketierung zu prüfen und zu verifizieren.

Der Umgang mit Mavens Assembly- und Distributionsbefehlen hilft dir dabei, deine Anwendungen effizient zu paketieren und zu verteilen.

Site-Generierungsbefehle

Mavens Site-Befehle sind eine gute Möglichkeit, Projekte zu dokumentieren. Sie erstellen umfassende Dokumentations-Websites für deine Projekte. Hier behandeln wir die wichtigsten Site-Befehle und ihre Funktionen:

mvn site

Der Befehl mvn site generiert die Projektdokumentation als Website und enthält Informationen wie die Projektzusammenfassung, Abhängigkeitsberichte, Plugin-Nutzung und mehr.

mvn site:deploy

Mit diesem Befehl stellst du die generierte Site auf einem Remote-Server bereit. Das ist nützlich, wenn du die Dokumentation einem größeren Personenkreis zugänglich machen möchtest, etwa Teammitgliedern oder der Öffentlichkeit.

mvn site:stage

Dieser Befehl stellt die Site in einem lokalen Verzeichnis bereit. Nutze ihn, um die Site lokal zu prüfen, bevor du sie auf dem Remote-Server veröffentlichst.

Eine übersichtliche und gut strukturierte Dokumentation ist in der Projektentwicklung unverzichtbar. Der Maven-Site-Befehl hilft dir, alles an einem Ort zu bündeln und die Kommunikation innerhalb des Entwicklungsteams zu verbessern.

WAR- & JAR-Befehle

Als Entwickler weißt du, wie wichtig es ist, Anwendungen in verschiedene Formate paketieren zu können. Maven ermöglicht es, Java-Anwendungen in verschiedene Formate zu paketieren, darunter WAR (Web Application Archive) und JAR (Java Archive). Die Bedeutung dieser Paketierungsformate wird besonders deutlich, wenn du Anwendungen auf Servern bereitstellen oder Bibliotheken verteilen möchtest. Hier behandeln wir die wichtigsten mvn-Befehle zur Erzeugung von WAR- und JAR-Dateien:

mvn war:war

Dieser Befehl kompiliert dein Projekt und paketiert es als WAR-Datei. Maven legt die WAR-Datei dabei im Verzeichnis target deines Projekts ab.

mvn jar:jar

Dieser Befehl kompiliert dein Projekt und paketiert es als JAR-Datei im Verzeichnis target deines Projekts.

Diese beiden Befehle helfen beim Deployment und der Verteilung. Damit lassen sich Java-Anwendungen effizient verwalten und bereitstellen.

Berichterstellung

Jedes Softwareprojekt braucht aussagekräftige Berichte, um den Fortschritt zu verfolgen. Maven bietet dafür leistungsfähige Plugins und mvn-Befehle zur Erstellung verschiedener Berichtstypen. Dieser Abschnitt behandelt zwei Maven-Plugins für das Reporting: Surefire und JaCoCo.

Surefire Plugin

Mit diesem Plugin lassen sich Unit-Tests in einem Maven-Projekt ausführen. Es erstellt detaillierte Berichte über die ausgeführten Tests, sodass du sicherstellen kannst, dass sich der Code wie erwartet verhält.

mvn surefire-report:report

Dieser Befehl erstellt einen Unit-Test-Bericht in einem gut lesbaren und analysierbaren Format. Maven erzeugt dabei einen HTML-Bericht im Verzeichnis target/site deines Projekts. Der Bericht enthält die Anzahl der ausgeführten, bestandenen und fehlgeschlagenen Tests sowie detaillierte Stack-Traces für alle Fehler.

JaCoCo-Plugin

Mit diesem Plugin lässt sich die Codeabdeckung durch Unit-Tests messen und dokumentieren. So kannst du sicherstellen, dass deine Tests die gesamte Codebasis abdecken.

mvn jacoco:report

Wenn du sehen möchtest, welche Teile des Codes getestet wurden und welche nicht, liefert dieser Befehl einen Codeabdeckungsbericht. Maven erstellt dabei einen HTML-Bericht im Verzeichnis target/site/jacoco , der detaillierte Abdeckungsmetriken für Klassen, Methoden und Codezeilen enthält.

Diese beiden Plugins helfen dabei, Testergebnisse und Codeabdeckung zu verfolgen, und liefern nützliche Einblicke in den Zustand und die Qualität deiner Codebasis.

Build-Anpassung

Maven ermöglicht es, den Build-Prozess genau an die Anforderungen deines Projekts anzupassen. In diesem Abschnitt wird gezeigt, wie Maven-Profile und Property-Definitionen zur Build-Anpassung eingesetzt werden.

Maven-Profile

Mit Maven-Profilen lassen sich verschiedene Konfigurationen für dein Projekt definieren, die anhand unterschiedlicher Faktoren wie System-Properties, Umgebungsvariablen oder eigenen Bedingungen aktiviert werden. So kannst du den Build-Prozess für verschiedene Umgebungen anpassen, etwa für Entwicklung, Test und Produktion. Profile werden im Abschnitt pom.xml einzuordnen unter <profiles> definiert. Die Option -p gefolgt von der Profil-ID aktiviert das jeweilige Profil.

Property-Definitionen

Maven-Properties ermöglichen es, Werte zu definieren, die in der gesamten pom.xml Datei wiederverwendet werden können. Diese Properties lassen sich im Abschnitt pom.xml, über die Kommandozeile oder in externen Property-Dateien festlegen. Properties werden im Abschnitt <properties> deiner pom.xmlDatei definiert. Danach können sie überall in der pom.xml Datei.

Die Anpassung des Build-Prozesses in Maven hilft dabei, das Projekt an verschiedene Umgebungen und Anforderungen anzupassen. Mit Profilen lässt sich zwischen verschiedenen Build-Konfigurationen wechseln, und mit Properties können Werte zentral verwaltet und wiederverwendet werden.

Fazit

Dieser Artikel hat Maven umfassend vorgestellt und alle Schritte bei der Entwicklung einer Java-Anwendung durchlaufen. Als leistungsfähiges Automatisierungswerkzeug für Java-Projekte bietet Maven für jede Phase der Entwicklung eigene Befehle und Funktionen. Wer diese Befehle kennt und souverän einsetzt, verbessert die Qualität seines Entwicklungsprozesses spürbar.

Häufig gestellte Fragen

Wofür wird Maven verwendet?

Maven ist ein Build-Automatisierungs- und Projektverwaltungswerkzeug für Java-Projekte. Es vereinfacht den Build-Prozess, verwaltet Projektabhängigkeiten und bietet eine standardisierte Projektstruktur. Darüber hinaus unterstützt Maven Projektdokumentation, Reporting und Verteilung.

Was ist POM in Maven?

Maven ist ein Tool, das den Build-Prozess und das Dependency-Management für Java-Projekte automatisiert. POM (Project Object Model) ist eine XML-Datei in Maven, die Projektinformationen und Konfigurationsdetails enthält, mit denen Maven das Projekt baut. Die POM-Datei definiert Projekt-Dependencies, Plugins, Goals und weitere Build-Konfigurationen.

Teilen

Weitere Blog-Beiträge

Weiterlesen.

Odoo Rezensions-Featurbild mit großer Überschrift links und dem Odoo-Logo rechts, umgeben von schwebenden App-Interface-Panels auf einem weichen lila Cloud-Hintergrund.
Web- & Business-Apps

Odoo im Test: Ist Odoo das richtige ERP für dein Unternehmen?

Odoo gehört zu den meistgeprüften ERP-Plattformen für wachsende Unternehmen - und das aus einem einfachen Grund: Es verspricht vieles aus einer Hand. Vertrieb, Buchhaltung, Lagerverwaltung

Jim SchwarzJim Schwarz 11 Min. Lesezeit
Open-Source-Alternativen zu WordPress – Hero-Bild mit buntem Farbverlauf-Hintergrund, Desktop-Monitor, Code-Editor, verschwommener Dashboard-Vorschau und großem Titeltext auf der linken Seite.
Web- & Business-Apps

Die besten Open-Source-Alternativen zu WordPress für Entwickler

WordPress bleibt relevant und bedient nach wie vor eine enorme Bandbreite an Websites. Im Plugin-Verzeichnis finden sich über 62.000 Plugins, im Theme-Verzeichnis über 14.000 kostenlose Themes. Da

Jim SchwarzJim Schwarz 14 Min. Lesezeit
Automad vs. WordPress Feature-Bild mit beiden Plattform-Logos und einer Überschrift zur Frage, welches CMS Entwickler wählen sollten.
Web- & Business-Apps

Automad vs. WordPress: Ein ausführlicher Vergleich zweier der besten CMS-Plattformen

Automad und WordPress lösen dasselbe Problem auf zwei völlig unterschiedliche Arten. Automad ist ein Flat-File-CMS mit Template-Engine - Inhalte liegen in Dateien statt in einer Datenbank. WordPress hingegen

Jim SchwarzJim Schwarz 9 Min. Lesezeit

Bereit zum Deployen? Ab 2,48 $/Monat.

Unabhängige Cloud seit 2008. AMD EPYC, NVMe, 40 Gbps. 14 Tage Geld-zurück-Garantie.