Tutoriel Maven N°1 : Installation Maven et phases Maven (2023)

Avec Objis, à travers ce tutoriel MAVEN, maîtrisez l’installation pas à pas de MAVEN, un outil de la brique ‘build’ d’une chaîne d’intégration continue . Créez un projet maven simple. Analysez l’arborescence de ce projet. Comprenez la notion de ‘Repository local’. Découvrez ce qu’est une phase MAVEN. Mettez en oeuvre les phases ‘compile’, ‘test’, ‘package’, ‘clean’, ‘install’, ‘site’. Pour aller plus loin, offrez-vous notre formation Intégration Continue (5j).

Auteur

Douglas MBIANDOU

Prérequis

Installation Java 8

Objectifs

  • Maîtriser l’installation de 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 avec MAVEN
  • Installer une application dans un repository local (USER_HOME\.m2\repository)
  • Comprendre l’enchaînement de phases
  • Générer le site web du projet avec Maven 3

Programme

  1. Installer Maven
  2. Comprendre la notion de ‘phase’ Maven
  3. Générer le site du projet
  4. Personnaliser le site du projet

Durée

1h

Partie 1 : Installation Maven

Etape 1

Téléchargez et dézipper l’archive courante de MAVEN, par exemple apache-maven-3.6.3-bin.zip. Vous obtenez le répertoire similaire au suivant

Tutoriel Maven N°1 : Installation Maven et phases Maven (2)

Analysez le contenu du répertoire bin

Tutoriel Maven N°1 : Installation Maven et phases Maven (3)
QUESTION : à quoi sert le fichier m2.conf ?

Analysez le contenu du répertoire conf.

Tutoriel Maven N°1 : Installation Maven et phases Maven (4)

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

Etape 2

Ajouter la variable d’environnement utilisateur M3_HOME avec pour valeur le chemin du répertoire apache-maven-3.2.2 (Ex: C:formationmavenoutilsapache-maven-3.2.2-bin)

—Sous win7/Win8 : Explorateur (touche Windows + E) / clique droit sur Ordinateur / Propriétés / Paramètre système avancés / Bouton Variable d’environnement / Nouvelle…

Tutoriel Maven N°1 : Installation Maven et phases Maven (5)

Etape 3

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (6)

Etape 4

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (7)

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (8)

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.

Tutoriel Maven N°1 : Installation Maven et phases Maven (9)

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (10)

(Video) Maven Tutorial 03- Maven Build Phases

BRAVO ! Maven est correctement installé sur votre ordinateur. Reste à découvrir et mettre en oeuvre la notion de ‘phase’

Partie 2 : phases MAVEN

Dans la deuxième partie de ce tutoriel MAVEN, vous allez mettre en pratique la notion de ‘Phase’ MAVEN

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (11)

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écutent 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. Quelle est la liste des phases de maven 3 ?

Tutoriel Maven N°1 : Installation Maven et phases Maven (12)

  • validate
  • initialize
  • 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
  • process-test-classes
  • test
  • prepare-package
  • package
  • pre-integration-test / integretion-test / post-integration-test
  • verify
  • install
  • deploy
  • pre-clean / clean / post-clean
  • pre-site / site / post-site
  • site-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.

Mise en oeuvre

Crééez le répertoire : C:\formationmaven\TPs\TP1

Dans le répertoire créé, exécutez la commande suivante :

mvn archetype:generate -B -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.objis.mavenapps -DartifactId=monappli -Dversion=1.0-SNAPSHOT -DpackageName=com.objis.mavenapps

—Que se passe t’il ?

Tutoriel Maven N°1 : Installation Maven et phases Maven (13)

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

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

INFO : la commande archetype:generate est présentée dans le tutoriel 2 ‘création de projet Maven’ et utilisée en mode dit ‘interactif’ . Ici cette commande est utilisée en mode dit ‘batch’, d’ou l’option -B

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (14)

Expliquez

Observez la création par maven :

—du répertoire ‘monappli’

Tutoriel Maven N°1 : Installation Maven et phases Maven (15)

—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)
Tutoriel Maven N°1 : Installation Maven et phases Maven (16)

Analysez le contenu du sous-répertoire mavenapps

Tutoriel Maven N°1 : Installation Maven et phases Maven (17)

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

(Video) Maven Tutorial 01 Part 1- Introduction and Setting up

Tutoriel Maven N°1 : Installation Maven et phases Maven (18)

Expliquez

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (19)

Expliquez

Analysez le contenu du fichier pom.xml

Tutoriel Maven N°1 : Installation Maven et phases Maven (20)

—Qu’est ce que le fichier xsd référencé par http://maven.apache.org/xsd/maven-4.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 ?

Ajouter la section suivante (Télécharger) pour configurer le compilateur avec la bonne version

Tutoriel Maven N°1 : Installation Maven et phases Maven (21)

Relancez la commande mvn compile.

Tutoriel Maven N°1 : Installation Maven et phases Maven (22)

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (23)

PHASE Test

Lancez la commande : mvn test

Tutoriel Maven N°1 : Installation Maven et phases Maven (24)

—Que se passe t’il ?

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (25)

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (26)

Expliquez

PHASE Packaging
Lancez la commande : mvn package

(Video) Explain Maven Command mvn clean install|What happen when we Run Maven project with mvn clean install

—Que se passe t’il ?

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (27)

—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 ?

Tutoriel Maven N°1 : Installation Maven et phases Maven (28)

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (29)

Nettoyage

Lancez la commande : mvn clean

—Que se passe t’il ?

Constatez la suppression du répertoire ‘target’
Tutoriel Maven N°1 : Installation Maven et phases Maven (30)

Enchaînement de phases

Lancez la commande : mvn clean install

—Que se passe t’il ?

Partie 3 (OPTIONNEL) : Génération site web projet

Pour voir le site du projet, déclarer le plugin maven-site-plugin dans la section ‘build’ , puis préciser les types de rapports souhaités

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (31)

Expliquez.

Lancez la commande ‘mvn site’ . Que se passe t’il ?

Supprimer la ligne concernant la version

relancez la commande : mvn site.

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

(Video) Maven Lifecycle In 15 minutes | Phases | Goals | Plugins | Profiles

Tutoriel Maven N°1 : Installation Maven et phases Maven (32)

Ouvrir le fichier index.html de ce répertoire avec votre navigateur
Tutoriel Maven N°1 : Installation Maven et phases Maven (33)

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’

Tutoriel Maven N°1 : Installation Maven et phases Maven (34)

—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)

Partie 4 (OPTIONNEL) : Personnalisation du site web projet

Etape 1 : création fichier site.xml

Créez un répertoire src/site

Tutoriel Maven N°1 : Installation Maven et phases Maven (35)

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (36)

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

Tutoriel Maven N°1 : Installation Maven et phases Maven (37)

Lancez mvn site à nouveau

Tutoriel Maven N°1 : Installation Maven et phases Maven (38)

Analysez le contenu de targetsite

Tutoriel Maven N°1 : Installation Maven et phases Maven (39)

Ouvrez le fichier index.html

Tutoriel Maven N°1 : Installation Maven et phases Maven (40)

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

Ajoutez une nouvelle section menu de gauche.

Projet monappli version maven 3

monappli-maven3

Conclusion

Dans ce tutoriel vous avez fait vos tout premiers pas avec MAVEN , outil standard pour la brique ‘build’ des projets Maven.

Vous avez installé maven et créé un squelette de projet Maven . Vous vous êtes également initié aux phases d’un projet Maven, en particulierles phases ‘compile’, ‘test’, ‘package’, ‘clean’, ‘site’.

Aller plus loin avec nos tutoriels MAVEN

Dans ce tutoriel vous avez utilisé la commande suivante pour créer un squelette de projet Maven :

mvn archetype:generate -B -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.objis.mavenapps -DartifactId=monappli -Dversion=1.0-SNAPSHOT -DpackageName=com.objis.mavenapps

QUESTION : avez-vous vraiment compris cette commande ? Qu’est ce qu’un ‘archetypeArtifactId‘ ?

Dans le tutoriel Maven N°2 ‘création projet Maven‘, vous allez mieux découvrir le plugin ‘Archetype’ qui vous a permis de créer le squelette d’un projet Maven (mvn archetype:generate).

(Video) Maven Crash and Essentials Tutorials Aug 2020

Alors que vous l’avez utilisé ici dans le mode ‘Batch’ (-B) vous allez apprendre à l’utiliser dans le mode dit ‘interactif’.

Aller plus loin avec notre formation professionnelle

Gagnez du temps. Améliorez la qualité de votre code. Travaillez mieux en équipe. Éliminez les régressions. Améliorer l’assurance qualité. Choisissez Objis pour votre formation ‘Intégration Continue’ avec Git, Maven, Jenkins, Nexus, Sonar. Bénéficiez du savoir-faire technique et pédagogique d’Objis pour monter en compétence sur Maven et d’autres outils standards d’une usine logicielle.

FAQs

What are the Maven phases? ›

Maven Lifecycle: Below is a representation of the default Maven lifecycle and its 8 steps: Validate, Compile, Test, Package, Integration test, Verify, Install and Deploy.

What are the correct types of Maven plugins? ›

Introduction. In Maven, there are two kinds of plugins, build and reporting: Build plugins are executed during the build and configured in the <build/> element. Reporting plugins are executed during the site generation and configured in the <reporting/> element.

What is groupId and artifactId in Maven project example? ›

Maven uses a set of identifiers, also called coordinates, to uniquely identify a project and specify how the project artifact should be packaged: groupId – a unique base name of the company or group that created the project. artifactId – a unique name of the project. version – a version of the project.

What is clean and install in Maven? ›

mvn clean install tells Maven to do the clean phase in each module before running the install phase for each module. What this does is clear any compiled files you have, making sure that you're really compiling each module from scratch.

What is Maven install? ›

The Install Plugin is used during the install phase to add artifact(s) to the local repository. The Install Plugin uses the information in the POM (groupId, artifactId, version) to determine the proper location for the artifact within the local repository.

What is the main purpose of the install phase in Maven? ›

The maven builds executed through the command line runs a set of phases and goals. The pom. xml configuration plays a major role in setting up the project build lifecycle. The packaging value of pom.
...
Role of POM in Build Lifecycle.
PhaseGoal
installinstall:install
deploydeploy:deploy
6 more rows
Aug 3, 2022

What is the difference between Maven plugin and Maven dependency? ›

A plugin is an extension to Maven, something used to produce your artifact (maven-jar-plugin for an example, is used to, you guess it, make a jar out of your compiled classes and resources). A dependency is a library that is needed by the application you are building, at compile and/or test and/or runtime time.

How do I install POM plugins? ›

Next, open the command console and go to the folder containing pom. xml and execute the following mvn command. Maven will start processing and displaying the clean phase of clean life cycle. Plugins are specified in pom.

What is dependency in Maven? ›

What is Maven Dependency? In Maven, a dependency is just another archive—JAR, ZIP, and so on—which our current project needs in order to compile, build, test, and/or run. These project dependencies are collectively specified in the pom. xml file, inside of a <dependencies> tag.

What is groupId Maven? ›

groupId This element indicates the unique identifier of the organization or group that created the project. The groupId is one of the key identifiers of a project and is typically based on the fully qualified domain name of your organization. For example org. apache. maven.

What is artifactId in Maven? ›

artifactId is the name of the jar without version. If you created it, then you can choose whatever name you want with lowercase letters and no strange symbols. If it's a third party jar, you have to take the name of the jar as it's distributed.

How do you name a groupId and artifactId in Maven project? ›

Two simple rules work for me:
  1. reverse-domain-packages for groupId (since such are quite unique) with all the constrains regarding Java packages names.
  2. project name as artifactId (keeping in mind that it should be jar-name friendly i.e. not contain characters that maybe invalid for a file name or just look weird)
Sep 16, 2010

What is the structure of Maven project? ›

maven-project/src/main – contains source code and resources that become part of the artifact. maven-project/src/test – holds all the test code and resources. maven-project/src/it – usually reserved for integration tests used by the Maven Failsafe Plugin.

Which of the following phases is present in site Maven life cycle? ›

There are three standard lifecycles in Maven: clean, default (sometimes called build) and site.

How many Maven repositories are there? ›

A repository in Maven holds build artifacts and dependencies of varying types. There are exactly two types of repositories: local and remote: the local repository is a directory on the computer where Maven runs. It caches remote downloads and contains temporary build artifacts that you have not yet released.

Videos

1. What is Maven Lifecycle in detail| Build Lifecycle Phases| Maven Plugins| Maven Goals| #AjAutomation
(AJ AUTOMATION)
2. Part 2 | Apache Maven Tutorial | maven Project | Folder Structure | Maven Build Life Cycle | pom.xml
(SDET- QA Automation Techie)
3. Maven Tutorial for Beginners | Introduction to Maven | DevOps Training | Edureka
(edureka!)
4. Maven phases vs. goals: the key differences
(Tom Gregory)
5. Maven Compile, Test, Package | Pom.XML | Maven Installation & Build Tutorial
(Thetips4you)
6. IntelliJ IDEA Beginner Tutorial | How to create Maven Project
(Automation Step by Step)
Top Articles
Latest Posts
Article information

Author: Rev. Porsche Oberbrunner

Last Updated: 04/23/2023

Views: 6225

Rating: 4.2 / 5 (73 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Rev. Porsche Oberbrunner

Birthday: 1994-06-25

Address: Suite 153 582 Lubowitz Walks, Port Alfredoborough, IN 72879-2838

Phone: +128413562823324

Job: IT Strategist

Hobby: Video gaming, Basketball, Web surfing, Book restoration, Jogging, Shooting, Fishing

Introduction: My name is Rev. Porsche Oberbrunner, I am a zany, graceful, talented, witty, determined, shiny, enchanting person who loves writing and wants to share my knowledge and understanding with you.