vers l'accueil formulaire de contact

Tutoriel maven N°5 : projet multi-modules

Votre formation MAVEN avec Objis, spécialiste formation java depuis 2005Maî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

Liens utiles

- Projet multi-modules Maven (page officielle)

- Multi-module sur le Maven book

Prérequis, outils et versions

- Tutoriel Maven N°1 : Installation Maven

Objectifs

- 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

Liens utiles

- + de 100 tutoriaux java/jee Objis
- Tutoriaux et formation MAVEN

Programme

- 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

Durée

- 30min

Contexte

Vous avez en charge un projet ’monappli’ impliquant 4 modules :

- monappli-dao
- monappli-service
- monappli-domaine
- monappli-web

Partie 1 : création projet parent

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 :

PNG - 23.5 ko
tutoriel-maven-projet-multi-modules-1

devient :

PNG - 7 ko
tutoriel-maven-projet-multi-modules-2

Partie 2 : création des modules

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 ?

PNG - 18.7 ko
tutoriel-maven-projet-multi-modules-3

- 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 :

PNG - 7.5 ko
tutoriel-maven-projet-multi-modules-4

Partie 3 : compilation du parent

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

PNG - 6.9 ko
tutoriel-maven-projet-multi-modules-5

- Expliquez le résultat.

QUESTION : qu’appelle t’on la ’composition’ dans MAVEN ? Quelle valeur ajoutée ?

Partie 4 : livraison war

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

PNG - 7 ko
tutoriel-maven-projet-multi-modules-6

Contient’il les jars des autres modules ? Pourquoi ?

- Expliquez comment obtenir le résultat attendu.

Conclusion

Dans ce tutoriel, vous avez mis en oeuvre un projet multi module Maven.

Formation MAVEN

Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur et chef de projet MAVEN :

Votre formation MAVEN avec Objis, spécialiste formation java depuis 2005