D'aprĂšs un traducteur: Il y a quelques annĂ©es, je me suis fixĂ© pour objectif de dĂ©couvrir rapidement, mais assez Ă©troitement, un framework aussi couramment utilisĂ© que Apache Maven . Presque immĂ©diatement, j'ai rĂ©ussi Ă trouver la littĂ©rature appropriĂ©e, mais j'ai Ă©tĂ© lĂ©gĂšrement surpris par le fait que tous les documents complexes Ă©taient exclusivement en anglais, alors qu'en russe il y avait beaucoup d'articles dispersĂ©s, mais je n'ai pas pu trouver un livre Ă part entiĂšre qui pouvait ĂȘtre lu de la couverture Ă la couverture. rĂ©ussi. En consĂ©quence, pour la lecture, j'ai choisi un petit livre, Introducing Maven, Ă©crit par Balaji Varnasi et Sudha Belida et publiĂ© par Apress en 2014. Au fur et Ă mesure que toutes les tĂąches ont Ă©tĂ© rĂ©solues, j'ai progressivement donnĂ© naissance Ă une traduction de cette publication qui, bien qu'elle soit posĂ©e sur mon bureau depuis quelques annĂ©es, peut encore ĂȘtre utile Ă la communautĂ©.
Ici, je donne une traduction d'un seul des chapitres de ce livre, mais l'ensemble peut ĂȘtre tĂ©lĂ©chargĂ© ici Ă partir de ces liens en anglais ou en russe (PDF).
Chapitre 6: Archétypes Maven
Jusqu'à ce point, vous avez créé le projet Maven manuellement, en créant des dossiers et des fichiers
pom.xml Ă partir de zĂ©ro. Cela peut ĂȘtre fastidieux, surtout si vous devez souvent crĂ©er des projets. Pour rĂ©soudre ce problĂšme, Maven fournit des archĂ©types.
Les archétypes Maven sont des projets prédéfinis qui permettent aux utilisateurs de créer facilement de nouveaux projets.
Les archétypes Maven fournissent également une base pratique pour partager des expériences et assurent la cohérence de la structure de répertoire Maven standard. Par exemple, une entreprise peut créer un archétype avec une feuille de style en cascade (
CSS ) d'entreprise,
des bibliothÚques approuvées
JavaScript et des composants réutilisables. Les développeurs utilisant ces archétypes pour créer des projets suivront automatiquement les normes de l'entreprise.
Archétypes intégrés
PrĂȘt Ă l'emploi, Maven fournit aux dĂ©veloppeurs des centaines d'archĂ©types. De plus, il existe de nombreux projets open source qui fournissent des archĂ©types supplĂ©mentaires que vous pouvez tĂ©lĂ©charger et utiliser. Maven fournit Ă©galement des archĂ©types de plug-in avec des objectifs pour crĂ©er des archĂ©types et gĂ©nĂ©rer des projets Ă partir d'archĂ©types.
Le plugin d'archétype a une cible de
génération qui vous permet de visualiser et de sélectionner l'archétype requis.
Le listing 6-1 affiche les résultats de l'exécution de la cible de génération à partir de la ligne de commande. Comme vous pouvez le voir, 491 archétypes ont été choisis
(en 2018, il y en avait déjà plus de 2000 - environ Transl.) . L'utilisation de plusieurs d'entre eux est discutée dans ce chapitre.
Listing 6-1. Le plugin d'archétype Maven génÚre un appel cible$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:
Création de projets Web
Maven fournit l'
archétype maven-archetype-webapp pour générer une application Web. Créons une telle application en appelant la commande suivante dans le
dossier C: \ apress \ gswm-book \ chapter6 :
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp
Cette commande est exécutée de maniÚre interactive. Pour les questions entrantes, entrez les informations suivantes:
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>>
La structure de dossiers générée doit ressembler à celle illustrée à la
figure 6-1 :
Figure 6-1. Structure du projet Web Maven
Le fichier
pom.xml est minimal et contient une seule dépendance -
JUnit . Maven peut simplifier le lancement de votre application Web à l'aide de serveurs Web intégrés tels que
Tomcat ou
Jetty .
Le listing 6-2 affiche le fichier
pom.xml modifié avec le plugin
Tomcat ajouté.
Listing 6-2. Fichier pom.xml modifié avec plugin Tomcat intégré <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>
Afin d'exécuter cette application Web sur le serveur
Tomcat , appelez la commande suivante dans le répertoire racine du projet:
mvn tomcat7:run
Vous verrez un projet détaillé et une sortie similaire à celle montrée dans le
Listing 6-3 .
Listing 6-3. Sortie de la commande d'exécution Tomcat 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"]
Maintenant, lancez votre navigateur et accĂ©dez Ă
localhost : 8080 / gswm-web / . Vous devriez voir une page Web comme celle illustrée à la
figure 6-2 .
Figure 6-2. Projet Web exécuté dans un navigateur
Projet multimodulaire
Les projets Java Enterpise Edition (JEE) sont souvent divisés en plusieurs modules pour faciliter le développement et la maintenance. Chacun de ces modules produit des artefacts tels que des
Enterprise JavaBeans (EJB) , des services Web, des projets Web et des
fichiers JAR client. Maven prend en charge le développement de tels grands projets
JEE , vous permettant d'héberger plusieurs projets Maven dans un autre projet Maven. La structure d'un tel projet multi-module est illustrée à la
figure 6-3 . Le projet parent contient un fichier
pom.xml et plusieurs projets Maven à l'intérieur.
Figure 6-3. La structure d'un projet multi-modules
Jusqu'à la fin de ce chapitre, nous vous expliquerons comment créer un projet multi-module pour une tùche dans laquelle vous devez diviser un grand projet en une application Web (artefact
WAR ) qui fournit une interface utilisateur, un projet de service (artefact
JAR ) contenant le code de couche de service et le projet
Persistance contenant le code au niveau du référentiel.
La figure 6-4 montre une représentation visuelle d'un tel scénario.
Figure 6-4. Projet multimodulaire Maven
Commençons le processus en créant un projet parent. Pour ce faire, exécutez la commande suivante à une invite de commandes dans le dossier C: \ apress \ gswm-book \ chapter6:
mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-parent -Dversion=1.0.0-SNAPSHOT -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=pom-root
L'archétype
pom-root crée le dossier
gswm-parent et le fichier
pom.xml .
Comme le
montre le Listing 6-4 , le fichier
pom.xml généré a un contenu minimal. Notez que le type de
pom est spécifié dans la balise d'
empaquetage du projet parent.
Listing 6-4. Fichier parent 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>
Créez maintenant un projet Web en exécutant la commande suivante dans le
dossier C: \ apress \ gswm-book \ chapter6 \ gswm-parent :
mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-web -Dversion=1.0.0-SNAPSHOT -Dpackage=war -DarchetypeArtifactId=maven-archetype-webapp
Au cours de la génération de ce projet Web, vous avez fourni à Maven des coordonnées telles que
groupId ,
version , etc. en tant que paramÚtres transmis à la cible de génération, qui a créé le projet
gswm-Web .
L'étape suivante consiste à créer un projet de service. à partir du
dossier C: \ apress \ gswm-book \ chapter6 \ gswm-parent, exécutez la commande suivante:
mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-service -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Veuillez noter que vous n'avez pas spécifié le paramÚtre de
package , car
maven-archetype-quickstart crée un projet
JAR par défaut. Notez également l'utilisation du paramÚtre
interactiveMode . Il indique simplement à Maven d'exécuter la commande sans demander à l'utilisateur aucune information.
Comme pour l'étape précédente, créez le projet Java
gswm-repository suivant en exécutant la commande suivante dans le
dossier C: \ apress \ gswm-book \ chapter6 \ gswm-parent :
mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-repository -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Maintenant que vous avez gĂ©nĂ©rĂ© tous les projets, jetez un Ćil au fichier
pom.xml dans le dossier
gswm-parent .
Le Listing 6-5 affiche son contenu.
Listing 6-5. Fichier pom.xml parent avec modules <?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>
L'élément
modules vous permet de déclarer des modules enfants dans un projet multi-modules. à mesure que chaque module est généré, Maven les enregistre en tant qu'enfants. De plus, il modifie les fichiers
pom.xml des modules eux-mĂȘmes, en leur ajoutant des informations sur le
pom.xml parent.
Le listing 6-6 affiche le fichier
pom.xml du projet
gswm-web , qui spécifie l'élément
pom parent.
Listing 6-6. Fichier pom.xml du module Web <?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>
Maintenant que toute l'infrastructure est installée, vous pouvez assembler le prochain projet. Exécutez simplement la commande
mvn package Ă partir du dossier
gswm-project , comme indiqué dans le
Listing 6-7 .
Listing 6-7. Lancement de la commande de package Maven dans le répertoire du projet parent 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] ------------------------------------------------------------------------
Création d'archétypes
Maven propose plusieurs façons de créer un nouvel archétype. Ici, nous allons utiliser un projet existant pour cela.
Commençons par créer un projet prototype qui servira de base à la génération de l'archétype. Ce projet sera compatible avec
Servlet 3.0 et contient un
servlet d'état qui renvoie un code d'état HTTP 200 («OK» - demande réussie). Au lieu de créer un projet Web à partir de zéro, copiez le projet
gswm-web généré précédemment et créez
gswm-web-prototype dans le
dossier C: \ apress \ gswm-book \ chapter6 . Apportez les modifications suivantes au projet que vous venez de copier:
1. Supprimez toutes les autres ressources, telles que les fichiers spécifiques à l'
environnement de développement intégré (IDE) (
.project ,
.classpath , etc.) que vous ne souhaitez pas inclure dans l'archétype.
2. Remplacez le contenu du
fichier web.xml du dossier webapp / WEB-INF . Cela configurera l'application Web pour utiliser
Servlet 3.0 :
<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. Ajoutez la dépendance
Servlet 3.0 au fichier
pom.xml . Le contenu
pom.xml mis Ă jour
est illustré dans le
Listing 6-8 .
Listing 6-8. Fichier Pom.xml avec dépendance de servlet <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. Depuis nous allons développer un projet web en Java, puis créer un dossier appelé
java dans le répertoire
src / main . De mĂȘme, crĂ©ez les dossiers
test / java et
test / resources dans le répertoire
src .
5. Créez le fichier
AppStatusServlet.java appartenant au package
com.apress.gswmbook.web.servlet dans le
répertoire src / main / java . Le package
com.apress.gswmbook.web.servlet est converti en la structure de dossiers
com \ apress \ gswmbook \ web \ servlet . Le code source du fichier
AppStatusServelet.java est indiqué dans le
Listing 6-9 .
Listing 6-9. Code source de la classe Java AppStatusServlet 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); } }
Une conception de prototype dans la structure sera un voyage à celui décrit dans la
Fig .
6-5 .
Fig. 6-5. Projet prototype généré
à l'aide de la ligne de commande, accédez au
dossier gswm-web-prototype du projet Ă partir de la commande suivante:
mvn archetype:create-from-project
Ă la fin de la commande, vous verrez le message
Archétype créé dans cible / sources générées / archétype . L'archétype généré se trouve dans le
dossier gswm-web-prototype / target / generated-sources / archetype .
L'étape suivante consiste à transférer l'artefact nouvellement généré dans un dossier gswm-web-archetype distinct pour le configurer avant la publication. Pour ce faire, procédez comme suit:
1. Créez le
dossier gswm-web-archetype dans le répertoire
C: \ apress \ gswm-book \ chapter6 .
2. Copiez les sous-répertoires et fichiers du dossier
C: \ apress \ gswm-book \ chapter6 \ gswm-web-prototype \ target \ generated-sources \ archetype dans le dossier
gswm-web-archetype .
3. Supprimez le sous-répertoire
cible du
dossier C: \ apress \ gswm-book \ chapter6 \ gswm-web-archetype .
La structure des dossiers de
gswm-web-archetype doit ĂȘtre similaire Ă celle illustrĂ©e Ă la
figure 6-6 .
Fig. 6-6. Structure de projet d'archétype Web
Commençons le processus de modification avec le fichier
pom.xml situé dans le
dossier gswm-web-archetype \ src \ main \ resources \ archetype-resources . Modifiez
finalName dans
pom.xml de
gswm-web en $ {artifactId}. Au cours du processus de création de projet, Maven remplacera l'expression
$ {artifactId} par la valeur fournie par l'utilisateur.
Lorsqu'un projet est créé à partir d'un archétype, Maven demande à l'utilisateur le nom du package. Maven crée une structure de dossiers correspondant au package situé dans le répertoire
src / main / java du projet créé. Ensuite, Maven déplace tout le contenu du dossier d'archétype
archetype-resources / src / main / java dans ce package. Parce que Si vous souhaitez que
AppStatusServlet se trouve dans le sous-
package web.servlet , créez le dossier
web / servlet et déplacez-y
AppStatusServlet . Le nouvel emplacement d'
AppStatusServlet.java est illustré à la
figure 6-7 .
Fig. 6-7. AppStatusServlet dans le package web.servlet
Ouvrez
AppStatusServlet.java et modifiez le nom du
package Ă partir du
package $ {package}; sur le
package $ {package} .web.servlet;La derniÚre étape de la création d'un archétype consiste à exécuter la commande suivante à partir de la ligne de commande, située dans le dossier gswm-web-archetype:
mvn clean install
Utiliser des archétypes
Une fois l'archétype installé, le moyen le plus simple de créer un projet à partir de celui-ci consiste à , dans le
dossier C: \ apress \ gswm-book \ chapter6 , exécuter la commande suivante:
mvn archetype:generate -DarchetypeCatalog=local
En rĂ©ponse aux requĂȘtes de Maven, entrez les valeurs indiquĂ©es dans l'
extrait 6-10 , et vous verrez le projet créé.
Listing 6-10. Création d'un nouveau projet à l'aide d'un archétype 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] ------------------------------------------------------------------------
Parce que le fichier
pom.xml pour
test-project contient déjà le plug-in
Tomcat , puis exécutez la commande
mvn tomcat7: run dans le
dossier C: \ apress \ gswmbook \ chapter6 \ test-project pour démarrer le
projet . Ouvrez un navigateur et accĂ©dez Ă
localhost : 8080 / test-project / status . Vous verrez l'inscription
OK , comme le montre la
figure 6-8 .
Fig. 6-8. Page générée par le projet généré
Résumé
Les archétypes Maven sont des talons de projet qui vous permettent de lancer rapidement de nouveaux projets. Dans ce chapitre, les archétypes intégrés ont été utilisés pour générer des projets Maven complexes, tels que des projets Web ou des projets multi-modules. Vous avez également appris à créer et à utiliser des archétypes personnalisés.
Dans le chapitre suivant, vous apprendrez les bases de la génération de sites, de la documentation et des rapports à l'aide de Maven.