Utiliser Maven 2
Date de publication : 04/08/2008 , Date de mise à jour : 04/08/2008
4. Gestion des plugins Maven
4.1. Dans Maven, tout est plugin
4.2. Cartographie
4.2.1. Core
4.2.2. Packaging
4.2.3. Outils
4.2.4. Reporting
4.2.5. IDE
4.2.6. Tous les plugins
4.3. Configurer les plugins
4. Gestion des plugins Maven
4.1. Dans Maven, tout est plugin
Quand on télécharge Maven, il ne comprend que le moteur qui sert à télécharger
des plugins. Tous les goals Maven sont dans des plugins même les plus
indispensables comme le plugin compiler.
Ainsi, il faut s'attendre à voir Maven télécharger énormémement de plugins lors
de la première exécution d'un goal.
4.2. Cartographie
4.2.1. Core
-
clean : nettoie le répertoire de travail du projet : suppression des
fichiers générés, etc.
- compiler : compilation des sources du projet
-
resources : copie les ressources du projet dans le répertoire de build
(classes ou test-classes)
- site : génère le site web du projet
- surefire : joue les tests unitaires
- Et aussi : deploy, install, verifier
4.2.2. Packaging
- jar : construit un jar à partir du projet
- war : construit un war à partir du projet
- Et aussi : ear, ejb, rar, shade
4.2.3. Outils
-
archetype : génère une structure de projet vide à partir d'un modèle
(voir le chapitre associé)
-
assembly : génère une distribution de sources / fichiers binaires
- dependency : manipulation et analyse des dépendances
-
help : donne des informations sur l'environnement de travail du projet
-
Et aussi : ant, antrun, enforcer, gpg, invoker, one, patch, release,
remote-resources, repository, scm, source, stage, etc.
4.2.4. Reporting
- checkstyle : génère un rapport d'audit de code checkstyle
- javadoc : génère la javadoc du projet
- pmd : génère un rapport PMD
-
project-info-reports : génère un rapport standard du projet
- surefire-reports : génère le rapport de tests unitaires
- jdepend : génère un rapport de métriques de code
- cobertura : génère un rapport de couverture de tests
- Findbugs : génère un rapport d'audit de code findbugs
-
Et aussi : changelog, changes, clover, doap, docck, jxr, etc.
4.2.5. IDE
-
eclipse : Génère un fichier .project pour intégration du projet dans
eclipse
- Et aussi : idea
4.2.6. Tous les plugins
4.3. Configurer les plugins
Il est possible de configurer les plugins utilisés dans le pom.xml :
Exemple de configuration d'un plugin |
< build >
< plugins >
...
< plugin >
< groupId > org.apache.maven.plugins< / groupId >
< artifactId > maven-compiler-plugin< / artifactId >
< version > 2.0.2< / version >
< configuration >
< source > 1.5< / source >
< target > 1.5< / target >
< / configuration >
< / plugin >
...
< / plugins >
< / build >
|
En rappelant le groupId et l'artifactId du plugin, on identifie de façon
certaine le plugin. Il est alors possible de spécifier des paramètres génériques
ou des paramètres spécifiques au plugin.
Spécifier la version a son importance. Tous les plugins peuvent avoir des mises
à jour et par défaut Maven vérifiera une fois par jour si une nouvelle version
est disponible. Il arrive que les meilleurs plugins sortent des versions
buggées, et sans fixer la version, le projet peut poser des problèmes à la
compilation d'un jour à l'autre parce que la nouvelle version a été téléchargée
automatiquement.
Dans le meilleur des scénarios, grâce à la dépendance entre pom étudié ci
dessous, un projet héritera d'un pom générique qui sélectionne au mieux les
versions de chaque plugin.
Les configurations spécifiques au plugin se positionnent dans la balise
<configuration>. Chaque paramètre se définit de la façon suivante :
<nom du paramètre>valeur</nom du paramètre>
Le plus judicieux est de toujours se référer à la page de rapport du plugin afin
de savoir quels paramètres peuvent lui être précisés. Pour trouver un plugin
maven,
la recherche Google "maven <nom du plugin> plugin"
apportera pratiquement toujours une réponse satisfaisante.
|
Pour s'assurer de compiler notre projet avec Java 5, il faut donc enrichir le
fichier pom.xml de cette façon :
|
pom.xml enrichit avec la configuration du plugin compiler |
< 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 >
< build >
< plugins >
< plugin >
< groupId > org.apache.maven.plugins< / groupId >
< artifactId > maven-compiler-plugin< / artifactId >
< version > 2.0.2< / version >
< configuration >
< source > 1.5< / source >
< target > 1.5< / target >
< / configuration >
< / plugin >
< / plugins >
< / build >
< / project >
|
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.