Concept
Les tâches exécutées par Maven reposent sur des plugins qui sont des fichiers jar utilisés par le moteur de l'application. Chaque plugin permet d'effectuer une tâche particulière. Pour cela, on peut leur spécifier un certain nombre de paramètres, appelés goals. Les goals sont configurables dans le fichier de configuration de maven : maven.xml
La figure suivante récapitule l'architecture utilisée :
Voici une liste non exhaustive de divers plugins et de leurs goals :
- jar : deploy, install
- war : clean, deploy, init, install
- j2ee : validate-war
- javadoc : deploy, install
- pdf
- latex : prepare-filesystem, generate
- eclipse : add-maven-repo, generate-classpath, generate-project
- jbulder : generate-library, generate-project
La commande maven -g permet d'avoir la liste de tous les plugins disponibles avec leurs goals.
Personalisation et création de plugins
Il existe 3 niveaux de personalisation des plugins :
- maven.xml : ajout d'extensions <postgoal> et <pregoal>
- maven.xml : création de goals
- Développement de plugins en Jelly
Le Jelly
C'est le langage utilisé pour le développement simple et rapide de plugins. Il s'appuie sur le XML et rajoute la possibilité d'effectuer des boucles et des tests dans le code, comme le montre l'exemple suivant :
<?xml version="1.0" encoding="ISO-8859-1"?>
<project xmlns:j="jelly:core">
<goal name="Echo Dependencies">
<j:forEach var="dep” items="${pom.dependencies}">
<echo>${pom.getDependencyPath(dep.getId())}</echo>
</j:forEach>
</goal>
</project> |