{"id":71,"date":"2023-11-16T14:29:00","date_gmt":"2023-11-16T13:29:00","guid":{"rendered":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=71"},"modified":"2024-01-08T09:14:22","modified_gmt":"2024-01-08T08:14:22","slug":"maven-grundlagen-fuer-java-entwickler","status":"publish","type":"post","link":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=71","title":{"rendered":"Maven-Grundlagen f\u00fcr Java-Entwickler"},"content":{"rendered":"\n<p>Maven ist ein leistungsstarkes Build-Management-Tool, das in der Java-Entwicklung weit verbreitet ist. Es erleichtert die Automatisierung des Build-Prozesses, das Verwalten von Abh\u00e4ngigkeiten und die Strukturierung von Projekten. In diesem Artikel werden die Grundlagen von Maven erkl\u00e4rt, und es wird gezeigt, wie Sie ein Java-Projekt mit Maven erstellen und externe Abh\u00e4ngigkeiten verwalten k\u00f6nnen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Was ist Maven?<\/h2>\n\n\n\n<p>Maven ist ein Open-Source-Build-Management-Tool, das von der Apache Software Foundation entwickelt wurde. Es bietet eine effiziente M\u00f6glichkeit, Java-Projekte zu erstellen, zu dokumentieren und zu verwalten. Der Name &#8222;Maven&#8220; stammt aus dem Jiddischen und bedeutet &#8222;Sammelplatz des Wissens&#8220;. In der Tat hilft Maven, Wissen \u00fcber die Struktur und Abh\u00e4ngigkeiten eines Projekts zu sammeln und zu verwalten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Warum Maven?<\/h2>\n\n\n\n<p>Maven l\u00f6st einige der Herausforderungen, die bei der Entwicklung gro\u00dfer Java-Projekte auftreten k\u00f6nnen. Hier sind einige Gr\u00fcnde, warum Entwickler Maven verwenden:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Konsistente Projektstruktur:<\/strong> Maven definiert eine standardisierte Projektstruktur, die die Zusammenarbeit und den Austausch von Projekten zwischen Entwicklern erleichtert.<\/li>\n\n\n\n<li><strong>Abh\u00e4ngigkeitsverwaltung:<\/strong> Maven vereinfacht die Verwaltung von Bibliotheksabh\u00e4ngigkeiten, indem es einen zentralen Repository-Manager verwendet, in dem Bibliotheken gehostet werden k\u00f6nnen.<\/li>\n\n\n\n<li><strong>Build-Automatisierung:<\/strong> Maven automatisiert den Build-Prozess, einschlie\u00dflich Kompilierung, Testen und Paketierung des Projekts. Dies f\u00f6rdert die Konsistenz und erleichtert die Integration in Entwicklungs- und CI\/CD-Pipelines.<\/li>\n\n\n\n<li><strong>Dokumentation:<\/strong> Maven generiert automatisch Projektdokumentation, einschlie\u00dflich Javadoc, und erleichtert so das Verst\u00e4ndnis und die Wartung des Codes.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Maven installieren<\/h2>\n\n\n\n<p>Bevor Sie ein Maven-Projekt erstellen k\u00f6nnen, m\u00fcssen Sie Maven auf Ihrem System installieren. Gehen Sie dazu auf die <a href=\"https:\/\/maven.apache.org\/\">Maven-Website<\/a> und laden Sie die neueste Version herunter. Befolgen Sie dann die Installationsanweisungen f\u00fcr Ihr Betriebssystem.<\/p>\n\n\n\n<p>Nach erfolgreicher Installation k\u00f6nnen Sie die Maven-Version mit dem folgenden Befehl in der Kommandozeile \u00fcberpr\u00fcfen:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">mvn -v<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Ein neues Maven-Projekt erstellen<\/h2>\n\n\n\n<p>Um ein neues Maven-Projekt zu erstellen, verwenden Sie den Befehl <code>mvn archetype:generate<\/code>. Maven bietet verschiedene Archetypen (Vorlagen) f\u00fcr verschiedene Arten von Projekten. Wenn Sie beispielsweise ein einfaches Java-Projekt erstellen m\u00f6chten, k\u00f6nnen Sie den Archetyp mit der Nummer 1 ausw\u00e4hlen. F\u00fchren Sie den folgenden Befehl aus und folgen Sie den Anweisungen:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=<span class=\"hljs-literal\">false<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Dieser Befehl erstellt ein neues Maven-Projekt mit den grundlegenden Dateien und Strukturen, einschlie\u00dflich einer einfachen Java-Klasse und einer Testklasse.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Die Projektstruktur verstehen<\/h2>\n\n\n\n<p>Nachdem Sie das Maven-Projekt erstellt haben, sehen Sie eine Standardordnerstruktur. Hier sind die wichtigsten Verzeichnisse und ihre Bedeutungen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>src\/main\/java:<\/strong> Enth\u00e4lt den Java-Quellcode Ihres Projekts.<\/li>\n\n\n\n<li><strong>src\/test\/java:<\/strong> Enth\u00e4lt die Testklassen f\u00fcr Ihren Code.<\/li>\n\n\n\n<li><strong>pom.xml:<\/strong> Die POM (Project Object Model)-Datei, die die Konfiguration und Abh\u00e4ngigkeiten des Projekts definiert.<\/li>\n<\/ul>\n\n\n\n<p>\u00d6ffnen Sie die <code>pom.xml<\/code>-Datei in einem Texteditor, um die Projektinformationen und Abh\u00e4ngigkeiten zu sehen. Hier ist ein einfaches Beispiel:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">project<\/span> <span class=\"hljs-attr\">xmlns<\/span>=<span class=\"hljs-string\">\"http:\/\/maven.apache.org\/POM\/4.0.0\"<\/span>\n         <span class=\"hljs-attr\">xmlns:xsi<\/span>=<span class=\"hljs-string\">\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"<\/span>\n         <span class=\"hljs-attr\">xsi:schemaLocation<\/span>=<span class=\"hljs-string\">\"http:\/\/maven.apache.org\/POM\/4.0.0 http:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\"<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">modelVersion<\/span>&gt;<\/span>4.0.0<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">modelVersion<\/span>&gt;<\/span>\n\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>com.example<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>myproject<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">version<\/span>&gt;<\/span>1.0-SNAPSHOT<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">version<\/span>&gt;<\/span>\n\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">properties<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">maven.compiler.source<\/span>&gt;<\/span>1.8<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">maven.compiler.source<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">maven.compiler.target<\/span>&gt;<\/span>1.8<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">maven.compiler.target<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">properties<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">project<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Hier sind einige wichtige Elemente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>groupId:<\/strong> Die Gruppen-ID identifiziert den Projektbereich. Sie ist oft in umgekehrter Domain-Schreibweise wie <code>com.example<\/code> festgelegt.<\/li>\n\n\n\n<li><strong>artifactId:<\/strong> Die Artefakt-ID ist der Name des Projekts. Hier ist es <code>myproject<\/code>.<\/li>\n\n\n\n<li><strong>version:<\/strong> Die Versionsnummer des Projekts.<\/li>\n\n\n\n<li><strong>properties:<\/strong> Einstellungen, wie z.B. die Java-Version.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Abh\u00e4ngigkeiten hinzuf\u00fcgen<\/h2>\n\n\n\n<p>Eines der m\u00e4chtigsten Features von Maven ist die einfache Verwaltung von Abh\u00e4ngigkeiten. Nehmen wir an, Ihr Projekt ben\u00f6tigt die Apache Commons Lang-Bibliothek. F\u00fcgen Sie die folgenden Zeilen zu Ihrer <code>pom.xml<\/code>-Datei hinzu, um diese Abh\u00e4ngigkeit zu definieren:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dependencies<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dependency<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>org.apache.commons<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>commons-lang3<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">version<\/span>&gt;<\/span>3.12.0<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">version<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">dependency<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">dependencies<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Nach dem Hinzuf\u00fcgen dieser Abh\u00e4ngigkeit wird Maven automatisch die erforderlichen JAR-Dateien von einem zentralen Repository herunterladen und Ihrem Projekt hinzuf\u00fcgen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Das Projekt bauen<\/h2>\n\n\n\n<p>Der Befehl <code>mvn package<\/code> erstellt Ihr Projekt, kompiliert den Quellcode, f\u00fchrt Tests durch und erstellt ein JAR-Archiv. F\u00fchren Sie diesen Befehl im Hauptverzeichnis Ihres Projekts aus:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">mvn package<\/code><\/span><\/pre>\n\n\n<p>Nachdem der Build abgeschlossen ist, finden Sie das erstellte JAR-Archiv im Zielordner (<code>target<\/code>). F\u00fchren Sie die JAR-Datei mit dem Befehl `java -jar target\/myproject-1.<\/p>\n\n\n\n<p>0-SNAPSHOT.jar` aus (beachten Sie, dass Sie den Dateinamen entsprechend Ihrer Projektversion anpassen m\u00fcssen).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Maven und IDEs<\/h2>\n\n\n\n<p>Die Verwendung von Maven in integrierten Entwicklungsumgebungen (IDEs) wie Eclipse, IntelliJ IDEA oder NetBeans ist einfach. Die meisten modernen IDEs bieten eine native Unterst\u00fctzung f\u00fcr Maven-Projekte. Importieren Sie einfach Ihr Projekt in die IDE, und es erkennt automatisch die Maven-Struktur und -Abh\u00e4ngigkeiten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p>Maven ist ein unverzichtbares Tool f\u00fcr Java-Entwickler, um Projekte effizient zu verwalten und den Build-Prozess zu automatisieren. In diesem Artikel haben wir die Grundlagen von Maven erl\u00e4utert, von der Installation bis zur Erstellung eines einfachen Java-Projekts und der Verwaltung von Abh\u00e4ngigkeiten. Durch die Anwendung dieser Prinzipien k\u00f6nnen Entwickler die Effizienz steigern, konsistente Builds sicherstellen und die Zusammenarbeit im Entwicklerteam verbessern.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Maven ist ein leistungsstarkes Build-Management-Tool, das in der Java-Entwicklung weit verbreitet ist. Es erleichtert die Automatisierung des Build-Prozesses, das Verwalten von Abh\u00e4ngigkeiten und die Strukturierung von Projekten. In diesem Artikel werden die Grundlagen von Maven erkl\u00e4rt, und es wird gezeigt, wie Sie ein Java-Projekt mit Maven erstellen und externe Abh\u00e4ngigkeiten verwalten k\u00f6nnen. Was ist Maven? [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-71","post","type-post","status-publish","format-standard","hentry","category-plain_java"],"_links":{"self":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/71","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=71"}],"version-history":[{"count":1,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/71\/revisions"}],"predecessor-version":[{"id":72,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/71\/revisions\/72"}],"wp:attachment":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=71"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=71"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}