Maîtrisez la création d’un projet multi module avec maven. Identifiez les différents modules de l’application. Générez le pom.xml du projet parent ainsi que le pom.xml des modules. Comprenez les concepts de composition et d’héritage. Enfin optimisez les pom.xml
Ce tutoriel est un extrait de séances pratiques de la formation MAVEN dispensée par Objis.
Les + objis
70% de travaux pratiques
Clé USB avec tous les outils utilisés + Corrigés TPs
Bilan pédagogique individuel + conseils
Nos tutoriaux pour vous initier
Projet multi-modules Maven (page officielle)
Multi-module sur le Maven book
Tutoriel Maven N°1 : Installation Maven
Comprendre la création d’un projet multi-modules maven
Comprendre les dépendances entre modules
Comprendre les concepts clés : composition et héritage
Optimiser la déclaration des dépendances
+ de 100 tutoriaux java/jee Objis
Tutoriaux et formation MAVEN
Contexte et architecture projet
Partie 1 : création projet parent
Partie 2 : création des modules
Partie 3 : compilation du parent
Partie 4 : livraison war
30min
Vous avez en charge un projet ’monappli’ impliquant 4 modules :
monappli-dao
monappli-service
monappli-domaine
monappli-web
A partir du répertoire TP4 (vide),créez projet parent (version 1.0-SNAPSHOT) de type ’quickstart’ : > mvn archetype:generate -DgroupId=com.objis.demomaven -DartifactId=monappli
dans le répertoire ’monappli’ généré :
— supprimez le répertoire src
— modifiez en ’pom’ le contenu de la balise packaging , initialement à ’jar’
Ainsi le pom initial suivant :

devient :

Objectif : créer pour chacun des livrables service, domain, dao un JAR
Couche domaine
À partir du répertoire ’monappli’ du projet parent, lancez :
mvn archetype:generate -DgroupId=com.objis.demomaven -DartifactId=monappli-domaine
Analysez le contenu du pom.xml du module
Expliquez
QUESTION : quel impact sur le pom parent ?

Expliquez
Couche service
À partir du répertoire ’monappli’ du projet parent, lancez :
mvn archetype:generate -DgroupId=com.objis.demomaven -DartifactId=monappli-service
QUESTION : quel impact sur le pom parent ?
Couche dao
À partir du répertoire ’monappli’ du projet parent, lancez :
mvn archetype:generate -DgroupId=com.objis.demomaven -DartifactId=monappli-dao
QUESTION : quel impact sur le pom parent ?
Couche web
Pour le projet web créez un projet de type war
mvn archetype:generate -DgroupId=com.objis.demomaven -DartifactId=monappli-web
Choisissez le type de projet maven-archetype-webapp
Analysez ensuite arborescence du projet globla :

A partir du répertoire du projet parent lancez : mvn compile

Expliquez le résultat.
QUESTION : qu’appelle t’on la ’composition’ dans MAVEN ? Quelle valeur ajoutée ?
L’objectif du projet est la livraison d’une application web (WAR) contenant :
— le jar du module domaine
— le jar du module service
— le jar du module dao
Lancez à partir du projet parent : mvn package
Analysez le contenu du fichier war généré , en particulier WEB-INF/lib

Contient’il les jars des autres modules ? Pourquoi ?
Expliquez comment obtenir le résultat attendu.
Dans ce tutoriel, vous avez mis en oeuvre un projet multi module Maven.
Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur et chef de projet MAVEN :