Vous êtes sur la page 1sur 22

Apache Maven

maven.apache.org

ELASRI Abderrahmane
Introduction

Apache Maven est un outil populaire d'automatisation de construction utilisé


principalement pour les projets Java.

Il a été lancé pour la première fois en 2004 et devenu l'un des outils de
construction les plus largement utilisés dans la communauté Java.

Basé sur le concept du modèle d'objet de projet (POM), Maven peut gérer la
construction, la génération de rapports et la documentation d'un projet à
partir d'une pièce d'information centrale.
Apache Maven est un puissant outil
d'automatisation de construction qui aide à
gérer et automatiser le processus de
construction de projets logiciels.

C'est Quoi Il utilise une approche déclarative pour la


configuration de construction et est basé sur

Maven ? le concept d'un Modèle d'Objet de Projet


(POM).

Le POM est un fichier XML qui contient des


informations sur le projet et ses
dépendances.
L'objectif principal de Maven est de permettre à un développeur
de comprendre l'état complet d'un effort de développement dans
le plus court laps de temps possible.
Afin d'atteindre cet objectif, Maven traite plusieurs domaines
d'intérêt :

C'est quoi
Faciliter le processus de construction

Maven ? Fournir un système de construction uniforme

Fournir des informations de projet de qualité

Encourager de meilleures pratiques de développement.


Le POM (Project Object Model)
• Descripteur du projet au format XML.
• Il s'agit d'un fichier XML présent à la racine du projet qui est lu par
Maven pour lui fournir les informations du projet.
• Les quatre elements obligatoire :
• modelVersion : Cet élément indique quelle version du modèle objet est
utilisée dans ce POM.
• groupId : Cet élément indique l'identifiant unique de l'organisation ou du
groupe qui a créé le projet.
• artifactId : Cet élément indique le nom de base unique de l'artefact principal
généré par ce projet.
• version : Cet élément indique la version de l'artefact généré par le projet.
Example d'un fichier POM
Cycle de vie
Le cycle de vie d'une construction est une séquence bien définie de
phases qui définissent l'ordre dans lequel les objectifs doivent être
exécutés. Chaque phase représente une étape du cycle de vie.

Il existe trois cycles de vie de construction intégrés.


• default : gère la construction et le déploiement du projet
• clean : gère le nettoyage du projet
• site : gère la création de la documentation du site du projet
Cycle de vie "build"
Le cycle de vie "build" de Maven passe par un ensemble d'étapes, appelées phases de
build. le cycle de vie par défaut est composé des phases suivantes.
• validate
• compile
• test
• package
• verify
• install
• deploy
Les phases de construction sont exécutées de manière séquentielle. Lorsque nous lançons
une commande maven build, nous spécifions la phase à exécuter. Toutes les phases de
construction maven qui précèdent la phase spécifiée sont également exécutées.
Apache Maven Plugins
Maven est , au cœur de son fonctionnement , un cadre d'exécution de
plugins. tout le travail est effectué par des plugins. Vous recherchez un
objectif spécifique à exécuter ?

Il y a les plugins de construction et de génération de rapports :


• Les plugins de construction seront exécutés pendant la construction et ils
doivent être configurés dans l'élément <build/> du POM.
• Les plugins de génération de rapports seront exécutés pendant la
génération du site et ils doivent être configurés dans l'élément
<reporting/> du POM.
Les plugins principaux de maven

• clean: Nettoie après la construction.


• compiler: Compile les sources Java.
• deploy: Déploie l'artefact construit dans le dépôt distant.
• failsafe: Exécute les tests d'intégration JUnit dans un classloader isolé.
• install: Installe l'artefact construit dans le référentiel local.
• resources: Copie les ressources dans le répertoire de sortie pour les inclure dans le JAR.
• site: Génère un site pour le projet en cours.
• surefire: Exécute les tests unitaires JUnit dans un classloader isolé.
• verifier : Utile pour les tests d'intégration - vérifie l'existence de certaines conditions.
Les dépôts Maven
Apache Maven utilise des dépôts pour stocker des artefacts. Vos dépendances sont téléchargées à partir de dépôts, et
les artefacts que vous construisez sont également stockés (installés, téléversés) dans des dépôts.
Un dépôt est un répertoire où tous les jars de projet, les jars de bibliothèque, les plugins ou tout autre artefact
spécifique au projet sont stockés et peuvent être utilisés facilement par Maven.
Les dépôts Maven se présentent sous trois types.
• local
• central
• remote
Les dépôts local
Le dépôt local de Maven est un emplacement de dossier sur votre
machine.
Il est créé lorsque vous exécutez n'importe quelle commande Maven
pour la première fois.
Le dépôt local de Maven conserve toutes les dépendances de votre
projet (bibliothèques jars, plugins jars, etc.).
Lorsque vous lancez une construction Maven, Maven télécharge
automatiquement tous les jars de dépendances dans le dépôt local.
Cela permet d'éviter les références aux dépendances stockées sur une
machine distante à chaque fois qu'un projet est construit.
Le dépôt Central
Le dépôt central de Maven est un dépôt fourni par la communauté
Maven. Il contient un grand nombre de bibliothèques couramment
utilisées.

Lorsque Maven ne trouve aucune dépendance dans le dépôt local, il


commence à chercher dans le dépôt central en utilisant
l'URL https://repo1.maven.org/maven2/.

Pour parcourir le contenu du dépôt central de Maven, la communauté


Maven a fourni une URL - https://search.maven.org/#browse.
Les dépôts a distance
Parfois, Maven ne trouve pas non plus une dépendance mentionnée dans le dépôt central.
Il arrête alors le processus de construction et affiche un message d'erreur dans la console.
Pour éviter ce genre de situation, Maven propose le concept de Remote Repository, qui est un dépôt
personnalisé du développeur contenant les bibliothèques requises ou d'autres bocaux du projet.
Par exemple, en utilisant le fichier POM.xml ci-dessous, Maven téléchargera les dépendances (non disponibles
dans le dépôt central) à partir des dépôts distants mentionnés dans le même fichier pom.xml.
Comment utiliser Maven dans un projet java ?
Pour utiliser Maven dans un projet Java, on doit créer un fichier POM
qui décrit la configuration et les dépendances du projet.
Mais, il est possible d'utiliser la commande "archetype:generate" pour
générer un projet Java avec la configuration nécessaire de manière
automatisée.

mvn archetype:generate -DgroupId=com.abderrahmane -DartifactId=my-app -DarchetypeArtifactId=maven-


archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Une fois que vous avez exécuté cette commande, vous remarquerez que quelques choses se
sont produites.
Tout d'abord, vous remarquerez qu'un répertoire nommé `my-app` a été créé pour le nouveau
projet, et ce répertoire contient un fichier nommé pom.xml qui devrait ressembler à ceci :
En bref, le POM contient chaque pièce d'information importante sur votre projet et est
essentiellement un guichet unique pour trouver tout ce qui est lié à votre projet.
Ceci est un POM très simple mais il affiche toujours les éléments clés que chaque POM contient :
• project : Il s'agit de l'élément de niveau supérieur présent dans tous les fichiers pom.xml de
Maven.
• modelVersion : Cet élément indique quelle version du modèle objet (object model) est utilisée
dans ce POM.
• groupId : Cet élément indique l'identifiant unique de l'organisation ou du groupe qui a créé le
projet.
• artifactId : Cet élément indique le nom de base unique de l'artefact principal généré par ce
projet.
• version : Cet élément indique la version de l'artefact généré par le projet.
• name : Cet élément indique le nom d'affichage utilisé pour le projet. C'est souvent utilisé dans la
documentation générée par Maven.
• url : Cet élément indique où le site du projet peut être trouvé.
• properties : Cet élément contient des variable accessibles n'importe où dans un POM.
• dependencies : Les enfants de cet élément répertorient les dépendances.
• build : Cet élément gère des choses comme la déclaration de la structure de répertoire de votre
projet et la gestion des plugins.
Après la génération de l'archétype de votre projet, vous remarquere
également que la structure de répertoire suivante a été créée :
Compilation des sources de l'application
Changer vers le répertoire où pom.xml est créé par archetype:generate
et exécuter la commande suivante pour compiler les sources de votre
application :

mvn compile

les classes compilées ont été placées dans ${basedir}/target/classes.


Compiler les sources du test et executer les
tests unitaire
Maintenant, vous compilez avec succès les sources de votre application et vous
disposez maintenant de certains tests unitaires que vous souhaitez compiler et
exécuter.
Executer la commande suivante :

mvn compile

Si vous souhaitez simplement compiler vos sources de test (mais pas exécuter les
tests), vous pouvez exécuter la commande suivant :

mvn test-compile
Comment créer un JAR ?
Créer un fichier JAR est assez simple et peut être accompli en exécutant la
commande suivante.
mvn package

Vous pouvez maintenant jeter un coup d'œil dans le répertoire ${basedir}/target et


vous verrez le fichier JAR généré.
Conclusion

En résumé, Apache Maven est un outil puissant pour la gestion des projets logiciels. Il
permet la standardisation, la gestion des dépendances, l'automatisation de la construction
et l'extensibilité, ce qui peut faire gagner du temps aux développeurs et faciliter la
maintenance et l'évolution des projets. Si vous travaillez sur un projet Java ou un projet qui
utilise Maven comme outil de construction, cela vaut la peine de prendre le temps
d'apprendre à l'utiliser efficacement.

Vous aimerez peut-être aussi