Grâce à Maven, vous allez pouvoir gérer les dépendances de votre projet et automatiser sa construction (compilation, test, production de livrable...)
Nous allons apprendre à:
- Demarrer un apache maven
- Organiser un projet maven
- Personnaliser les differente étape de sa construction
- livrer les livrable avec un site descriptif et différent rapport de celui-ci.
- Apprendre le fonctionnement et les principes généraux de Maven
- Intégrer l'utilisation de Maven dans votre IDE (Eclipse et IntelliJ)
- Initialiser un projet Maven
- Organiser un projet Maven multi-modules
- Personnaliser la construction (build) du projet avec des plugins
- Générer un site documentaire du projet et des rapports sur la construction (résultat des tests, qualité du code...)
- le site officiel: https://maven.apache.org
- un livre en français, sous licence Creative-commons CC BY-SA 4.0, écrit par Nicolas de Loof et Arnaud Héritier : Apache Maven - Version 2 et 3.
- Apache Maven™ est une marque déposée par l'Apache Software Foundation.
Pour installer Apache Maven, il nous faut avoir mis en place java dans notre pc, vous pouvez télécharger JDK sur lien suivant https://www.oracle.com/java/technologies/javase-downloads.html et pour plus de détail sur la configuration de java https://github.com/camara94/overview_java_dev#variables-denvironnement-java
éléchargez Apache Maven depuis le site officiel (les checksums sont aussi fournis sur la page de téléchargement) : https://maven.apache.org/download.cgi
Téléchargement selon votre Système:
- Binary tar.gz archive si vous êtes sous Linux ou Mac OS
- Binary zip archive si vous êtes sous Windows
Ensuite, il faut définir le chemin vers le JDK grâce à la variable d'environnement JAVA_HOME
et ajouter les binaires du JDK et de Maven au PATH :
- sous Linux : ajoutez ces lignes, en les adaptant, à la fin de votre fichier
(ou/.bashrc/.zshrc
si vous utilisez Zsh) :export JAVA_HOME="/chemin/vers/repertoire/env/java/jdk1.8.0_131"
MAVEN_HOME="/chemin/vers/repertoire/env/maven/apache-maven-3.5.0"
PATH="$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin"
Si votre fichier contient déjà une ligne du type PATH=...
, conservez-la et ajoutez aussi la ligne ci-dessus dans le fichier.
- sous Mac OS Même principe que pour linux
- sous Windows : Ouvrez les propriétés système (avec la commande
Win
+Pause
),
dans l'onglet « Avancé », cliquez sur le bouton « Variables d'environnement »
Testez maintenant l'installation de Maven :
-
- sous Linux / Mac OS : ouvrez un nouveau terminal
- sous Windows : ouvrez une nouvelle console (
Win
+R
, puis tapercmd
, puisEntrée
- Exécutons la commande suivante :
- Vous devriez obtenir un résultat ressemblant à ceci, si tout c'était bien passé.
La configuration de Maven se fait dans le fichier .${home}/.m2/settings.xml
, dans le répertoire home de l'utilisateur (~/.m2/settings.xml
sous Linux). Ce fichier n'existe pas par défaut, copiez celui contenu dans le répertoire conf de l'installation de Maven.
Maven télécharge les dépendances dans un repository local pour les gérer. Par défaut, il est situé dans le répertoire ${home}/.m2/repository
dans le home de l'utilisateur (~/.m2/repository
sous Linux). Ce répertoire peut vite prendre beaucoup de place et je vous conseille de le sortir de votre home pour le mettre dans le répertoire d'environnement de développement. Pour cela, il faut modifier le fichier settings.xml
comme ceci :
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
...
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository -->
<localRepository>/chemin/vers/repertoire/env/maven/repository</localRepository>
...
</settings>
Vous trouverez plus de détails sur la configuration de Maven dans la documentation officielle :
-
Configuration : https://maven.apache.org/configure.html
-
Fichier
settings.xml
: https://maven.apache.org/settings.html
Si vous avez téléchargé le package Eclipse IDE for Java EE Developpers ou Eclipse IDE for Java Developpers, le plugin de support de Maven est déjà embarqué.
Sinon, vous pouvez installer le plugin M2Eclipse.
Ouvrez les préférences (Window > Preferences) :
- Maven
Le support de Maven est embarqué par défaut dans JetBrains IntelliJ.
Ouvrez les préférences par défaut (File > Other Settings > Default Settings...) :
- Build, Execution Deployment > Build Tools > Maven :
- Maven home directory
/chemin/vers/repertoire/env/maven/apache-maven-3.6.3
- User settings file :
/chemin/vers/home/utilisateur/.m2/settings.xml
(si le chemin par défaut est incorrect, cochez la case Override et saisissez le bon chemin)
- Maven home directory
Maven utilise une approche dite « convention over configuration » (ou convention plutôt que configuration en français). Cela signifie que Maven a établi un certain nombre de conventions et que si vous les respectez, beaucoup de choses seront automatiques. Vous n'aurez donc que très peu de configuration à faire !
Une des premières conventions concerne l'arborescence d'un projet Maven. Celle-ci étant fixée (cf. documentation), Maven vous permet de générer un squelette de votre projet. C'est ce que je vais vous montrer tout de suite.
Afin de générer le squelette d'un projet, Maven s'appuie sur des archétypes (ce sont des sortes de modèles). Ici, nous allons tout simplement demander à Maven de nous générer un squelette à partir de l'archétype quickstart
Voici comment générer le squelette en mode console :
- Ouvrez un terminal (ou une console) et placez-vous dans le répertoire où vous voulez créer le projet (Maven y créera un sous-répertoire pour votre nouveau projet).
- Générer un archétype :
- Maven va vous poser des questions afin de personnaliser la génération de votre projet :
- groupId:
com.stardevcgroup
- artefactId:
mawatta
- version (1.0-SNAPSHOT): laissez vide
- groupId:
- Ensuite Maven vous demande de confirmer les paramètres, il vous suffit donc presser la touche
Entrée
- Maven crée le squelette du projet : vous devriez voir un résultat comme celui-ci :
Maven a créé le répertoire mawatta
(valeur de l'artifactId saisie plus tôt) et y a généré l'arborescence suivante :
J'ai ainsi obtenu :
- un fichier
>pom.xml
à la racine de mon projet. C'est le fichier de description/configuration du projet Maven. - un répertoire
src/main/java
. C'est le répertoire contenant les sources de mon application, contenant pour l'instant un unique fichierApp.java
situé dans le packagecom.stardevcgroup
. - un répertoire
src/test/java
. C'est le répertoire contenant les sources des tests JUnit de mon application, contenant pour le moment un unique fichierAppTest.java
situé dans le packagecom.stardevcgroup
.
Dans le fichier pom.xml
, on retrouvera les paramètres saisis lors de la génération (groupId, artifactId, version) :
Vous remarquez également que l'application a une dépendance en « test » vers JUnit version 3.8.1. Nous y reviendrons plus loin dans ce cours
Le fichier App.java
, quant à lui, n'est qu'un simple Hello world :
Ouvrez une console à la racine du projet (répertoire **mawatta
), là où se trouve le fichier **pom.xml