vers l'accueil formulaire de contact

Tutoriel Maven N°1 : Installation et Phases

Votre formation MAVEN avec Objis, spécialiste formation java depuis 2005Maîtrisez l’installation pas à pas de MAVEN. Comprenez la valeur ajoutée de cet outil : automatisation des taches récurrentes , gestion des dépendances (fini la gestion manuelle des jars !) ,génération de rapports contribuant à un meilleur pilotage de votre projet, et enfin modèle de Projet basé sur des conventions (POM) . Créez un projet maven simple. Découvrez les phases MAVEN. Identifiez les premiers points communs et les premières différences entre Maven 2 et Maven 3

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

Liens utiles

- + de 100 tutoriaux java/jee Objis
- Site du livre de référence (Maven by example)
- Comprendre Maven 3
- Compatibilité Maven 2.x / Maven 3.x
- Génération de site avec Maven 3.x
- Plugin report info’
- Guide création de site projet maven

Prérequis, outils et versions

- Installation kit de développement Java (JDK)

Objectifs

- Maîtriser l’installation de MAVEN 2 / Maven 3
- Comprendre les phases MAVEN et les mettre en œuvre
- Créer un projet MAVEN simple via le plugin Maven ’archetype’
- Maîtriser la compilation, le test, le packaging d’une application,
- Installer une application dans un repository local
- Comprendre l’enchaînement de phases
- Générer le site web du projet avec Maven 2
- Générer le site web du projet avec Maven 3

Programme

- Partie 1 : installation Maven
- Partie 2 : phases Maven
- Partie 3 : génération site projet maven 2
- Partie 4 : génération site projet maven 3

Durée

- 30 min

Qui sommes-nous ?

PNG - 102.4 ko

Partie 1 : Installation Maven

REMARQUE : l’installation de Maven se passe de la même manière avec maven 2 et maven 3.

Etape 1
- Téléchargez et dézipper l’archive courante de MAVEN, par exemple apache-maven-2.2.1-bin.zip. Vous obtenez le répertoire apache-maven-2.2.1

PNG - 8.2 ko
tutoriel-maven-installation-analyse-1

- Analysez le contenu du répertoire bin

PNG - 15.4 ko
tutoriel-maven-installation-analyse-1bis

QUESTION : à quoi sert le fichier m2.conf ?

- Analysez le contenu du répertoire conf.

PNG - 13.1 ko
tutoriel-maven-installation-analyse-1ter

QUESTION : à quoi sert la balise ’localRepository’ présente dans le fichier settings.xml

Etape 2
- Ajouter la variable d’environnement utilisateur M2_HOME avec pour valeur le chemin du répertoire apache-maven-2.2.1 (Ex : c :\outils\apache-maven-2.2.1-bin)

— Sous WinXP : Menu Démarrer/Panneau de configuration/système/Onglet Avancé/Zone ’variable utilisateur’/Bouton Variable d’environnement/Ajouter

PNG - 22.7 ko
tutoriel-maven-installation-analyse-2

Etape 3

Dans la même boîte de dialogue, ajouter la variable d’environnement M2 , avec comme valeur %M2_HOME%\bin

PNG - 23.7 ko
tutoriel-maven-installation-analyse-3

Etape 4

Créez ou mettez à jour la variable d’environnement PATH avec %M2%

PNG - 23.9 ko
tutoriel-maven-installation-analyse-4

Etape 5 (Optionnel)

Dans la même boîte de dialogue, ajouter la variable d’environnement MAVEN_OPTS pour spécifier paramètres JVM , par exemple -Xms256m -Xmx512m

PNG - 25 ko
tutoriel-maven-installation-analyse-5

Etape 6

Assurez-vous que la variable d’environnement JAVA_HOME pointe bien sur le répertoire d’installation du JDK, et que %JAVA_HOME%\bin est bien dans la variable PATH.

PNG - 23.9 ko
tutoriel-maven-installation-analyse-6

Etape 7

Lancez une nouvelle commande MS-DOS et exécuter : mvn –version pour avoir la version de Maven installées Démarrer/Programmes/Accesoires/Invite de commandes

PNG - 5 ko
tutoriel-maven-installation-analyse-7

Maven est correctement installé sur votre ordinateur.

INFO : à partir de la version maven 2.1.0, la commande mvn —version vous fournit également comme information la ’locale’ par défaut (ici fr_FR) ainsi que l’encodage par défaut (ici cp1252, représentant le jeu de caractère Windows)

Partie 2 : phases MAVEN

Contexte : comprendre les phases Maven

Maven associe à tout projet MAVEN des phases . A chacune de ces phases est associé/déclenché par défaut des taches mises en oeuvre par des plugins.

PNG - 53 ko
tutoriel-maven-installation-analyse-7bis

Dans le cycle de vie ’par défaut’ d’un projet Maven, les phases les plus utilisées sont :

- validate : vérifie les prérequis d’un projet maven
- compile : compilation du code source
- test : lancement des tests unitaires
- package : assemble le code compilé en un livrable
- install : partage le livrable pour d’autres projets sur le même ordinateur
- deploy : publie le livrable pour d’autres projets dans un ’repository’ distant

Les phases s’exécutente de façon séquentielle de façon à ce qu’une phase dépende de la phase précédente.

Par exemple, le lancement par l’utilisateur de la phase test (mvn test) impliquera le lancement préalable par maven des phases ’validate’ et ’compile’.

ACTION : lancez une commande maven ’vide’ , c’est à dire tapez uniquement ’mvn’ en ligne de commande. MAven signale une erreur et précise la liste des phases disponible.

En particulier, voici la liste complète des phases pour un projet maven 2.2 : Votre formation MAVEN avec Objis, spécialiste formation java depuis 2005

— validate
— generate-sources
— process-sources
— generate-resources
— process-resources
— compile

— process-classes
— generate-test-sources
— process-test-sources
— generate-test-resources
— process-test-resources
— test-compile
— test

— prepare-package
— package

— integration-test
— verify
— install
— deploy

REMARQUE : Cette partie ne traite pas de plugin ni de taches (Goals). Cette partie a pour objectif de vous faire comprendre et mettre en oeuvre des phases MAVEN.

A VOUS DE JOUER : quelle est la liste des phases de maven 3 ?

Mise en oeuvre

- Crééez le répertoire : C :\formationmaven\TPs\TP1
- Dans le répertoire créé, exécutez la commande suivante :

mvn archetype:create -DgroupId=com.objis.mavenapps -DartifactId=monappli

— Que se passe t’il ?

PNG - 27.5 ko
tutoriel-maven-installation-analyse-11

Il semble que plusieurs fichiers soient téléchargé sur votre ordinateur.

QUESTION : quels types de fichiers sont téléchargés ? et où sont t’ils déposés ?

Après quelques secondes, vous pouvez lire :

PNG - 33.6 ko
tutoriel-maven-installation-analyse-12

- Expliquez

INFO : la commande archetype:create est dépréciée . Elle est utilisée ici uniquement à des fin pédagogique. Une meilleure pratique de création de projet maven est présentée dans le tutoriel 2 ’création de projet Maven’ via archetype:generate.

- Analysez le répertoire .m2 créé par maven dans votre répertoire utilisateurs système ($HOME sous unix, Documents and Settings pour winxp) :

PNG - 16.1 ko
tutoriel-maven-installation-analyse-13

- Expliquez

- Observez la création par maven :
— du répertoire ’monappli’

PNG - 11.1 ko
tutoriel-maven-installation-analyse-8

— du fichier pom.xml à la racine du répertoire monappli

— des sous répertoire src/main/java (code source) et src/test/java (code tests)

PNG - 15.1 ko
tutoriel-maven-installation-analyse-9

- Analysez le contenu du sous-répertoire mavenapps

PNG - 14.8 ko
tutoriel-maven-installation-analyse-10

- Editez le fichier App.java (par exemple avec éditeur Notepad++)

PNG - 12 ko
tutoriel-maven-installation-analyse-14

- Expliquez

- De même, éditez le fichier src/test/java/TestApp.java

PNG - 21.4 ko
tutoriel-maven-installation-analyse-15

- Expliquez

- Analysez le contenu du fichier pom.xml

PNG - 29 ko
tutoriel-maven-installation-analyse-16

— Qu’est ce que le fichier xsd référencé par http://maven.apache.org/maven-v4_0_0.xsd ?
— Qu’est ce que le groupId ? l’ artifactId ? la ’version’ ? En déduire les ’coordonnées MAVEN’ de l’application monappli

— Qu’est ce que les ’dependencies’ ?
— A quoi sert la balise ’scope’ de la dépendence Junit ?

- Citez d’autres balises que l’on peut retrouver dans ce fichier pom.xl

PHASE Compilation

- A partir du répertoire ’monappli’, lancez la commande : mvn compile
— Que se passe t’il ?

PNG - 13.4 ko
tutoriel-maven-installation-analyse-17

- Analysez le contenu tu répertoire monappli/target généré

PNG - 10.3 ko
tutoriel-maven-installation-analyse-18

PHASE Test
- Lancez la commande : mvn test

PNG - 32.5 ko
tutoriel-maven-installation-analyse-19

— Que se passe t’il ?

- Analysez le contenu tu répertoire monappli/target généré

PNG - 13.5 ko
tutoriel-maven-installation-analyse-20

- Analysez le contenu tu répertoire monappli/target/surefire-reports généré

PNG - 16.3 ko
tutoriel-maven-installation-analyse-21

- Expliquez

PHASE Packaging Lancez la commande : mvn package

— Que se passe t’il ?

- Analysez le contenu tu répertoire monappli/target généré

PNG - 16.2 ko
tutoriel-maven-installation-analyse-22

— Quelle relation avec mvn compile ?

- Lancez la commande : java -cp target/monappli-1.0-SNAPSHOT.jar com.objis.mavenapps.App

— Que se passe t’il ?

PHASE Install
- Lancez la commande : mvn install

— Que se passe t’il ?
- Qu’est ce qu’un repository local ?
- Quel est le repository local par defaut ? Comment le changer ?

- Montrez que le jar de l’application est désormais dans le repository local. A quel endroit ?

PNG - 6.1 ko
tutoriel-maven-installation-analyse-23

- Confirmez la création du jar monappli-1.0-SNAPSHOT.jar dans le répertoire %USER_HOME%/.m2/repository/com/objis/demomaven

PNG - 30.6 ko
tutoriel-maven-installation-analyse-24

Nettoyage
- Lancez la commande : mvn clean
— Que se passe t’il ?

- Constatez la suppression du répertoire ’target’

PNG - 11.1 ko
tutoriel-maven-installation-analyse-8

Enchaînement de phases
- Lancez la commande : mvn clean install
— Que se passe t’il ?

Génération site web projet avec Maven 2

- Lancez la commande : mvn site

- Que se passe t’il ?

- Constatez la création du répertoire ’target/site’

PNG - 35.6 ko
tutoriel-maven-installation-analyse-25

- Ouvrir le fichier index.html de ce répertoire avec votre navigateur

PNG - 69.4 ko
tutoriel-maven-installation-analyse-26

Maven a généré le site internet de votre projet. Ce site , mis à jour, constitue un outil de communication pour l’ensemble de l’équipe de développement.

- Cliquez sur le lien ’Dependencies’

PNG - 82.4 ko
tutoriel-maven-installation-analyse-27

— Quel lien avec notre fichier pom.xml ?

- Expliquez les autres liens du menu (gauche) du site :
— about
— Continous integration
— Issue tracking
— Mailing list
— Plugin Management
— Project License
— Project Summary
— Project Team
— Source Repository

QUESTION : comment faire pour que ce rapport soit en français ? (utiliser la documentation suivante)

QUESTION : comment modifier le contenu des différentes sections ?

Projet

Zip - 32.7 ko
monappli

Génération site web projet avec Maven 3

Si vous essayez de lancer ’mvn site’ avec maven 3 en pensant que les choses se passeront comme avec Maven 2, vous faites erreur.

Vous aurrez un build SUCCESSFULL ...

PNG - 11.9 ko
maven3-site-ko-cmd-success

...sans avoir un contenu du répertoire target/site attendu.

PNG - 6.6 ko
maven3-site-ko

La gestion du site web d’un projet maven a été complètement revue.

Pour voir le site du projet , 2 étapes
— 1) Déclarer le plugin maven-site-plugin dans la section ’build’ , avec les types de rapports souhaités
— 2) Créer le fichier site.xml dans nouveau répertoire monappli/src/site/

Etape 1 : Déclaration plugin ’site’

- Ajouter la déclaration suivante (correspondant au code suivant) dans le pom.xml, juste au dessus de la section ’dependencies’ :

PNG - 21 ko
maven3-config-site-projet-build-xml-maven-site-plugin

- Expliquez.

Etape 2 : création fichier site.xml

- Créez un répertoire src/site

PNG - 6.5 ko
maven3-config-site-projet-build-xml-maven-site-plugin-creation-repertoire-site

- Dans ce répertoire, créez un fichier site.xml

PNG - 4 ko
maven3-config-site-projet-build-xml-maven-site-plugin-creation-repertoire-site-fichier-site-xml

- Analysez le contenu du fichier (correspondant au code suivant) :

PNG - 36.7 ko
maven3-config-site-xml

- Lancez mvn site à nouveau

PNG - 40.6 ko
maven3-site-OK

- Analysez le contenu de target\site

PNG - 10.9 ko
maven3-site-OK-target

- Ouvrez le fichier index.html

PNG - 40.8 ko
maven3-site-OK-demo

- Expliquez le lien entre cette interface et le fichier site.xml

- Ajoutez une nouvelle section menu de gauche.

Projet monappli version maven 3

Zip - 33.9 ko
monappli-maven3

Conclusion

Dans ce tutoriel, vous avez installé maven 2. Vous vous êtes également initié aux phases d’un projet Maven. Vous avez créé un projet maven simple.

Dans le tutoriel Maven N°2 ’création projet Maven’, vous allez mieux découvrir la bonne pratique de création d’un projet maven : avec le plugin archetype et le ’goal’ generate.

Prochaine formation MAVEN

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

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