Einführung in Maven von Balaji Varnasi und Sudha Belida (Übersetzung)

Von einem Übersetzer: Vor einigen Jahren habe ich mir das Ziel gesetzt, ein so häufig verwendetes Framework wie Apache Maven schnell, aber ziemlich genau kennenzulernen. Fast sofort gelang es mir, die passende Literatur zu finden, aber ich war ein wenig überrascht, dass alle komplexen Materialien ausschließlich auf Englisch waren, während es auf Russisch viele verstreute Artikel gab, aber ich konnte kein vollwertiges Buch finden, das von Anfang bis Ende gelesen werden konnte erfolgreich. Aus diesem Grund habe ich zum Lesen ein kleines Buch ausgewählt: Introducing Maven, das von Balaji Varnasi und Sudha Belida geschrieben und 2014 von Apress veröffentlicht wurde. Da alle Aufgaben gelöst waren, brachte ich nach und nach eine Übersetzung dieser Publikation hervor, die, obwohl sie seit einigen Jahren auf meinem Schreibtisch liegt, für die Community immer noch nützlich sein kann.

Hier gebe ich nur eine Übersetzung eines der Kapitel dieses Buches, aber das Ganze kann hier über diese Links in Englisch oder Russisch (PDF) heruntergeladen werden.

Kapitel 6: Maven-Archetypen


Bis zu diesem Zeitpunkt haben Sie das Maven-Projekt manuell erstellt und Ordner und pom.xml- Dateien von Grund auf neu erstellt. Dies kann langwierig sein, insbesondere wenn Sie häufig Projekte erstellen müssen. Um dieses Problem zu lösen, stellt Maven Archetypen zur Verfügung. Maven-Archetypen sind vordefinierte Projekte, mit denen Benutzer problemlos neue Projekte erstellen können.

Maven-Archetypen bieten auch eine bequeme Basis für den Erfahrungsaustausch und stellen die Konsistenz der Standard-Maven-Verzeichnisstruktur sicher. Ein Unternehmen kann beispielsweise einen Archetyp mit einem Enterprise Cascading Style Sheet ( CSS ), von JavaScript genehmigten Bibliotheken und wiederverwendbaren Komponenten erstellen. Entwickler, die diese Archetypen zum Erstellen von Projekten verwenden, folgen automatisch den Unternehmensstandards.

Eingebaute Archetypen


Maven bietet Entwicklern sofort Hunderte von Archetypen. Darüber hinaus gibt es viele Open Source-Projekte, die zusätzliche Archetypen bereitstellen, die Sie herunterladen und verwenden können. Maven bietet auch Plug-in-Archetypen mit Zielen zum Erstellen von Archetypen und zum Generieren von Projekten aus Archetypen.

Das Archetyp-Plugin verfügt über ein Generierungsziel , mit dem Sie den erforderlichen Archetyp anzeigen und auswählen können. Listing 6-1 zeigt die Ergebnisse der Ausführung des generierten Ziels über die Befehlszeile. Wie Sie sehen, standen 491 Archetypen zur Auswahl (2018 waren es bereits mehr als 2.000 - ca. übersetzt) . Die Verwendung mehrerer davon wird in diesem Kapitel erläutert.

Listing 6-1. Das Maven-Archetyp-Plugin generiert einen Zielaufruf

$mvn archetype:generate [INFO] Scanning for projects... [INFO] [INFO] ----------------------------------------------------------------------- [INFO] Building Maven Stub Project (No POM) 1 [INFO] ----------------------------------------------------------------------- [INFO] [INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) @ standalone- pom >>> [INFO] [INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) @ standalone- pom <<< [INFO] [INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone- pom [INFO] Generating project in Interactive mode [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) ........................... ........................... 1176: remote -> ru.yandex.qatools.camelot:camelot-plugin (-) 1177: remote -> se.vgregion.javg.maven.archetypes:javg-minimal-archetype (-) 1178: remote -> sk.seges.sesam:sesam-annotation-archetype (-) 1179: remote -> tk.skuro:clojure-maven-archetype (A simple Maven archetype for Clojure) 1180: remote -> tr.com .lucidcode:kite-archetype (A Maven Archetype that allows users to create a Fresh Kite project) 1181: remote -> uk.ac.rdg.resc:edal-ncwms-based-webapp (-) 1182: local -> com.inflinx.book.ldap:practical-ldap-empty-archetype (-) 1183: local -> com.inflinx.book.ldap:practical-ldap-archetype (-) Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 491: 

Erstellung von Webprojekten


Maven stellt den Archetyp maven-archetype-webapp zum Generieren einer Webanwendung bereit . Erstellen Sie eine solche Anwendung, indem Sie den folgenden Befehl im Ordner C: \ apress \ gswm-book \ kapitel6 aufrufen :

 mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp 

Dieser Befehl wird interaktiv ausgeführt. Geben Sie bei eingehenden Fragen die folgenden Informationen ein:

 Define value for property 'groupId': : com.apress.gswmbook Define value for property 'artifactId': : gswm-web Define value for property 'version': 1.0-SNAPSHOT: : <<Hit Enter>> Define value for property 'package': com.apress.gswmbook: : war Confirm the properties configuration: groupId: com.apress.gswmbook artifactId: gswm-web version: 1.0-SNAPSHOT package: war Y: <<Hit Enter>> 

Die generierte Ordnerstruktur sollte wie in Abbildung 6-1 aussehen:

Abbildung 6-1. Struktur des Maven-Webprojekts



Die Datei pom.xml ist minimal und enthält eine einzige Abhängigkeit - JUnit . Maven kann den Start Ihrer Webanwendung mithilfe eingebetteter Webserver wie Tomcat oder Jetty vereinfachen. Listing 6-2 zeigt die geänderte Datei pom.xml mit dem hinzugefügten Tomcat- Plugin.

Listing 6-2. Geänderte pom.xml-Datei mit eingebettetem Tomcat-Plugin

 <project xmlns=" http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-web</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>gswm-web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>gswm-web</finalName> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> </plugins> </build> </project> 

Rufen Sie den folgenden Befehl im Projektstammverzeichnis auf, um diese Webanwendung auf dem Tomcat- Server auszuführen:

 mvn tomcat7:run 

Sie sehen ein detailliertes Projekt und eine Ausgabe ähnlich der in Listing 6-3 gezeigten.

Listing 6-3: Tomcat-Befehlsausgabe ausführen

 Oct 11, 2014 12:08:43 PM org.apache.catalina.core.StandardService startInternal INFO: Starting service Tomcat Oct 11, 2014 12:08:43 PM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.47 Oct 11, 2014 12:08:45 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [334] milliseconds. Oct 11, 2014 12:08:45 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] 

Starten Sie nun Ihren Browser und gehen Sie zu localhost : 8080 / gswm-web / . Sie sollten eine Webseite wie die in Abbildung 6-2 gezeigte sehen.

Abbildung 6-2. Webprojekt, das in einem Browser ausgeführt wird



Multimodulares Projekt


Java Enterpise Edition (JEE) -Projekte sind häufig in mehrere Module unterteilt, um die Entwicklung und Wartung zu erleichtern. Jedes dieser Module erzeugt Artefakte wie Enterprise JavaBeans (EJBs) , Webdienste, Webprojekte und Client- JARs . Maven unterstützt die Entwicklung derart großer JEE- Projekte, sodass Sie mehrere Maven-Projekte in einem anderen Maven-Projekt hosten können. Die Struktur eines solchen Multi-Modul-Projekts ist in Abbildung 6-3 dargestellt . Das übergeordnete Projekt enthält eine pom.xml- Datei und mehrere Maven-Projekte.

Abbildung 6-3. Die Struktur eines Multi-Modul-Projekts



Bis zum Ende dieses Kapitels wird erläutert, wie Sie ein Projekt mit mehreren Modulen für eine Aufgabe erstellen, bei der Sie ein großes Projekt in eine Webanwendung ( WAR- Artefakt) aufteilen müssen, die eine Benutzeroberfläche, ein Serviceprojekt ( JAR- Artefakt) mit dem Service-Layer-Code und das Projekt bereitstellt Persistenz mit dem Code auf Repository-Ebene. Abbildung 6-4 zeigt eine visuelle Darstellung eines solchen Szenarios.

Abbildung 6-4. Multimodulares Projekt Maven



Beginnen wir den Prozess, indem wir ein übergeordnetes Projekt erstellen. Führen Sie dazu den folgenden Befehl an einer Eingabeaufforderung im Ordner C: \ apress \ gswm-book \ kapitel6 aus:

 mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-parent -Dversion=1.0.0-SNAPSHOT -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=pom-root 

Der Archetyp pom-root erstellt den Ordner gswm-parent und darin die Datei pom.xml .

Wie in Listing 6-4 gezeigt , enthält die generierte Datei pom.xml nur minimalen Inhalt. Beachten Sie, dass der POM- Typ im Paket- Tag des übergeordneten Projekts angegeben ist.

Listing 6-4 Übergeordnete Datei pom.xml

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-parent</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <name>gswm-parent</name> </project> 

Erstellen Sie nun ein Webprojekt, indem Sie den folgenden Befehl im Ordner C: \ apress \ gswm-book \ kapitel6 \ gswm-parent ausführen :

 mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-web -Dversion=1.0.0-SNAPSHOT -Dpackage=war -DarchetypeArtifactId=maven-archetype-webapp 

Beim Generieren dieses Webprojekts haben Sie Maven Koordinaten wie groupId , version usw. als Parameter zur Verfügung gestellt, die an das generierende Ziel übergeben wurden, das das gswm-Webprojekt erstellt hat.

Der nächste Schritt ist das Erstellen eines Serviceprojekts. Führen Sie im Ordner C: \ apress \ gswm-book \ kapitel6 \ gswm-parent den folgenden Befehl aus:

 mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-service -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 

Bitte beachten Sie, dass Sie den Paketparameter nicht als angegeben haben maven-archetype-quickstart erstellt ein Standard- JAR- Projekt. Beachten Sie auch die Verwendung des InteractiveMode- Parameters. Es weist Maven einfach an, den Befehl auszuführen, ohne den Benutzer zur Eingabe von Informationen aufzufordern.

Erstellen Sie ähnlich wie im vorherigen Schritt das folgende Java-Projekt für das gswm-Repository , indem Sie den folgenden Befehl im Ordner C: \ apress \ gswm-book \ kapitel6 \ gswm-parent ausführen :

 mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-repository -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 

Nachdem Sie alle Projekte generiert haben, sehen Sie sich die Datei pom.xml im übergeordneten Ordner gswm-parent an . Listing 6-5 zeigt den Inhalt.

Listing 6-5 Übergeordnete pom.xml-Datei mit Modulen

 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven 4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-parent</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <name>gswm-parent</name> <modules> <module>gswm-web</module> <module>gswm-service</module> <module>gswm-repository</module> </modules> </project> 

Mit dem Modulelement können Sie untergeordnete Module in einem Projekt mit mehreren Modulen deklarieren. Wenn jedes Modul generiert wird, registriert Maven sie als untergeordnete Elemente. Außerdem werden die pom.xml- Dateien der Module selbst geändert und Informationen zur übergeordneten pom.xml hinzugefügt. Listing 6-6 zeigt die Datei pom.xml des gswm-web- Projekts an, in der das übergeordnete pom- Element angegeben ist.

Listing 6-6. Webmodul pom.xml Datei

 <?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-parent</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-web</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>war</packaging> <name>gswm-web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>gswm-web</finalName> </build> </project> 

Nachdem die gesamte Infrastruktur installiert ist, können Sie das nächste Projekt zusammenstellen. Führen Sie einfach den Befehl mvn package im Ordner gswm-project aus , wie in Listing 6-7 gezeigt .

Listing 6-7: Der Befehl Maven package wurde im übergeordneten Projektverzeichnis gestartet

 C:\apress\gswm-book\chapter6\gswm-parent>mvn package [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] gswm-parent [INFO] gswm-web Maven Webapp [INFO] gswm-service [INFO] gswm-repository [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] gswm-parent ....................................... SUCCESS [0.001s] [INFO] gswm-web Maven Webapp ............................. SUCCESS [1.033s] [INFO] gswm-service ...................................... SUCCESS [0.552s] [INFO] gswm-repository ................................... SUCCESS [0.261s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.949s [INFO] Finished at: Mon Oct 13 23:09:21 MDT 2014 [INFO] Final Memory: 6M/15M [INFO] ------------------------------------------------------------------------ 

Archetypen erstellen


Maven bietet verschiedene Möglichkeiten, um einen neuen Archetyp zu erstellen. Hier werden wir ein bestehendes Projekt dafür verwenden.

Beginnen wir mit der Erstellung eines Prototypprojekts, das als Grundlage für die Generierung des Archetyps verwendet wird. Dieses Projekt ist Servlet 3.0- kompatibel und enthält ein Status-Servlet , das einen HTTP-Statuscode 200 zurückgibt („OK“ - erfolgreiche Anforderung). Anstatt ein Webprojekt von Grund auf neu zu erstellen, kopieren Sie das zuvor generierte gswm-web- Projekt und erstellen Sie den gswm-web-Prototyp im Ordner C: \ apress \ gswm-book \ kapitel6 . Nehmen Sie die folgenden Änderungen an dem gerade kopierten Projekt vor:

1. Entfernen Sie alle anderen Ressourcen, z. B. Dateien für die integrierte Entwicklungsumgebung (IDE) ( .project , .classpath usw.), die Sie nicht in den Archetyp aufnehmen möchten.

2. Ersetzen Sie den Inhalt der Datei web.xml aus dem Ordner webapp / WEB-INF . Dadurch wird die Webanwendung für die Verwendung von Servlet 3.0 konfiguriert:

 <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Archetype Created Web Application</display-name> </web-app> 

3. Fügen Sie die Servlet 3.0- Abhängigkeit zur Datei pom.xml hinzu . Der aktualisierte Inhalt von pom.xml wird in Listing 6-8 gezeigt .

Listing 6-8. Pom.xml-Datei mit Servlet-Abhängigkeit

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-web</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>gswm-web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>gswm-web</finalName> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> </plugins> </build> </project> 

4. Seit Wir werden ein Webprojekt in Java entwickeln und dann einen Ordner namens Java im Verzeichnis src / main erstellen. Erstellen Sie auf ähnliche Weise die Ordner test / java und test / resources im Verzeichnis src .

5. Erstellen Sie die Datei AppStatusServlet.java , die zum Paket com.apress.gswmbook.web.servlet gehört, im Verzeichnis src / main / java . Das Paket com.apress.gswmbook.web.servlet wird in die Ordnerstruktur com \ apress \ gswmbook \ web \ servlet konvertiert. Der Quellcode für die Datei AppStatusServelet.java ist in Listing 6-9 dargestellt .

Listing 6-9 Quellcode für die AppStatusServlet Java-Klasse

 package com.apress.gswmbook.web.servlet; import javax.servlet.annotation.WebServlet; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; @WebServlet("/status") public class AppStatusServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { PrintWriter writer = response.getWriter(); writer.println("OK"); response.setStatus(response.SC_OK); } } 

Ein Prototypentwurf in der Struktur ist eine Reise zu dem in Abb . 6-5 dargestellten .

Abb. 6-5. Prototypprojekt generiert



Wechseln Sie über die Befehlszeile in den Ordner gswm-web-prototype des Projekts, und führen Sie den folgenden Befehl aus:

 mvn archetype:create-from-project 

Am Ende des Befehls wird die Meldung Archetyp angezeigt, die in Ziel / Generierte Quellen / Archetyp erstellt wurde . Der generierte Archetyp befindet sich im Ordner gswm-web-prototype / target / generate-sources / archetype .

Der nächste Schritt besteht darin, das neu generierte Artefakt in einen separaten Ordner gswm-web-archetype zu übertragen, um es vor der Veröffentlichung zu konfigurieren. Gehen Sie dazu folgendermaßen vor:

1. Erstellen Sie den Ordner gswm-web-archetype im Verzeichnis C: \ apress \ gswm-book \ kapitel6 .

2. Kopieren Sie die Unterverzeichnisse und Dateien aus dem Ordner C: \ apress \ gswm-book \ chapter6 \ gswm-web-prototype \ target \ generate-sources \ archetype in den Ordner gswm-web-archetype .

3. Entfernen Sie das Ziel- Unterverzeichnis aus dem Ordner C: \ apress \ gswm-book \ kapitel6 \ gswm-web-archetype .

Die Ordnerstruktur für gswm-web-archetype sollte der in Abbildung 6-6 gezeigten ähnlich sein.

Abb. 6-6. Projektstruktur des Web-Archetyps



Beginnen wir den Änderungsprozess mit der Datei pom.xml im Ordner gswm-web-archetype \ src \ main \ resources \ archetype-resources . Ändern Sie finalName in pom.xml von gswm-web in $ {artefaktId}. Während des Projekterstellungsprozesses ersetzt Maven den Ausdruck $ {Artefakt-ID} durch den vom Benutzer angegebenen Wert.

Wenn ein Projekt aus einem Archetyp erstellt wird, fragt Maven den Benutzer nach dem Paketnamen. Maven erstellt eine Ordnerstruktur, die dem Paket im Verzeichnis src / main / java des erstellten Projekts entspricht. Anschließend verschiebt Maven den gesamten Inhalt aus dem Archetyp- Ordner archetype-resources / src / main / java in dieses Paket. Weil Wenn sich das AppStatusServlet im Unterpaket web.servlet befinden soll , erstellen Sie den Ordner web / servlet und verschieben Sie das AppStatusServlet dorthin. Der neue Speicherort von AppStatusServlet.java ist in Abbildung 6-7 dargestellt .

Abb. 6-7. AppStatusServlet im Paket web.servlet



Öffnen Sie AppStatusServlet.java und ändern Sie den Paketnamen von package $ {package}. auf Paket $ {package} .web.servlet;
Der letzte Schritt beim Erstellen eines Archetyps besteht darin, den folgenden Befehl über die Befehlszeile im Ordner gswm-web-archetype auszuführen:

 mvn clean install 

Archetypen verwenden


Nachdem der Archetyp installiert wurde, können Sie am einfachsten ein Projekt daraus erstellen, indem Sie im Ordner C: \ apress \ gswm-book \ kapitel6 den folgenden Befehl ausführen:
 mvn archetype:generate -DarchetypeCatalog=local 


Geben Sie als Antwort auf Mavens Anfragen die in Listing 6-10 gezeigten Werte ein, und Sie sehen das erstellte Projekt.

Listing 6-10: Erstellen eines neuen Projekts mithilfe eines Archetyps

 C:\apress\gswm-book\chapter6>mvn archetype:generate -DarchetypeCatalog=local [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] Generating project in Interactive mode [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache. maven.archetypes:maven-archetype-quickstart:1.0) Choose archetype:1: local -> com.apress.gswmbook:gswm-web-archetype (gswm-web-archetype) Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 1 Define value for property 'groupId': : com.apress.gswmbook Define value for property 'artifactId': : test-project Define value for property 'version': 1.0-SNAPSHOT: : Define value for property 'package': com.apress.gswmbook: : Confirm properties configuration: groupId: com.apress.gswmbook artifactId: test-project version: 1.0-SNAPSHOT package: com.apress.gswmbook Y: : ------------------------------------------------------------------------------ project [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1:27.635s [INFO] Finished at: Mon Oct 13 23:36:01 MDT 2014 [INFO] Final Memory: 9M/22M [INFO] ------------------------------------------------------------------------ 

Weil Die Datei pom.xml für das Testprojekt enthält bereits das Tomcat- Plugin. Führen Sie dann den Befehl mvn tomcat7: run im Ordner C: \ apress \ gswmbook \ chapter6 \ test-project aus , um das Projekt zu starten. Öffnen Sie einen Browser und gehen Sie zu localhost : 8080 / test-project / status . Sie sehen die Beschriftung OK , wie in Abbildung 6-8 gezeigt .

Abb. 6-8. Vom generierten Projekt generierte Seite



Zusammenfassung


Maven-Archetypen sind Projektstubs, mit denen Sie schnell neue Projekte starten können. In diesem Kapitel wurden integrierte Archetypen verwendet, um komplexe Maven-Projekte wie Webprojekte oder Projekte mit mehreren Modulen zu generieren. Sie haben auch gelernt, wie Sie benutzerdefinierte Archetypen erstellen und verwenden.

Im nächsten Kapitel lernen Sie die Grundlagen der Site-Generierung, Dokumentation und Berichterstellung mit Maven kennen.

Source: https://habr.com/ru/post/de421323/


All Articles