Utiliser Maven 2
Date de publication : 04/08/2008 , Date de mise à jour : 04/08/2008
1. La théorie de Maven
1.1. Philosophie
1.2. Installation et fonctionnement
1.3. Apport de Maven
1. La théorie de Maven
1.1. Philosophie
Les Makefile ou les scripts Ant réalisent la compilation d'un projet via le
scriptage des différentes étapes de la vie du projet. Même avec les directives
très abouties de Ant, le script redéfini pour chaque projet des directives
telles que : "compiler les fichiers sources du répertoire src dans le repertoire
classes".
Maven propose de renverser le problème. Ce ne sont plus les opérations à faire
qui sont définit mais le projet qui est décrit. En sachant où se trouvent les
élements dont il a besoin dans le projet, il est à même de réaliser les
opérations dessus. On n'écrit plus de script avec Maven.
Maven propose une configuration par défaut très complète qui permet une
standardisation de la structure des projets Java. Au besoin, Maven permet de
surcharger les configurations pour s'adapter à plus de situations.
Maven 1 était encore mixte dans le passage entre le scripting de tache et la
description du projet. Il proposait à la fois la description du projet et la
création de script. Maven 2 est plus strict et ne passe plus que par la
description du projet. Maven 1 n'est plus supporté et il est conseillé de migrer
les anciens projets sur Maven 2. La procédure est facilité par un plugin Maven 2
dédié. Ce document traite exclusivement de Maven 2.
1.2. Installation et fonctionnement
Installation
: le plus simple est encore de suivre la procédure officielle
Télécharger Maven
. Il faut surtout retenir que plusieurs variables d'environnement sont à
positionner : JAVA_HOME si ce n'est pas déjà fait, M2_HOME et ajouter le
répertoire bin de Maven dans le PATH afin de pouvoir utiliser les commandes
Maven.
Utilisation
: Se positionner en ligne de commandes dans le répertoire du projet. Avec la
commande
mvn
et les goals décrits plus bas, il est alors possible de réaliser toutes les
opérations nécessaires sur le projet.
Un projet qui utilise Maven contient simplement un fichier pom.xml qui
représente la description du projet pour Maven. Toutes les informations pour le
projet sont à renseigner dans ce fichier.
Alors qu'un fichier build.xml de Ant décrit entièrement la procédure pour
réaliser une opération technique, le fichier pom.xml décrit le projet et suffit
pour que Maven sache le manipuler.
POM est l'acronyme de
Project Object Model
. Il s'agit donc d'un fichier XML qui a pour but de définir tous les élements
relatifs à un projet au sens large.
Un projet est un artifact dans Maven, il s'agit de la brique de base que
manipule Maven. Pour démarrer un pom, il faut au moins définir l'identification
de l'artifact du projet. La définition complète d'un artifact est donné plus
loin.
|
Le fichier pom.xml minimaliste ressemblera donc à ceci :
|
Le premier pom.xml |
< project xmlns = " http://maven.apache.org/POM/4.0.0 "
xmlns : xsi = " http://www.w3.org/2001/XMLSchema-instance "
xsi : schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd " >
< modelVersion > 4.0.0< / modelVersion >
< groupId > com.developpez< / groupId >
< artifactId > cours-maven-example< / artifactId >
< packaging > jar< / packaging >
< name > Projet d'exemple pour le cours Maven< / name >
< version > 1.0< / version >
< / project >
|
1.3. Apport de Maven
Grâce à la définition du projet dans le pom.xml, Maven 2 est capable de gérer
toute la vie du projet. Il traite de la compilation mais aussi de packaging de
l'application (faire une archive War ou Ear n'est pas toujours évident), la
gestion des dépendances, la génération des rapports de suivis des développements
(checkstyles, test unitaires...) et même le déploiement de l'application sur un
environnement d'exécution.
Généralisé sur une grande majorité des projets Java Open Source (Spring,
Hibernate, Struts...), Maven 2 uniformise ainsi la gestion d'un projet Java et
offre la possibilité d'utiliser des outils qui permettent l'industrialisation du
développement via la génération automatique des rapports ou les systèmes
d'intégration continue.
Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à
votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre
intellectuelle protégée par les droits d'auteurs. Copyright Matthieu Lux . Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu
: textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous
encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets.