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.