Avec Objis, spécialiste formation MAVEN (3j) et formation intégration continue (5j), maîtrisez la notion de plugin Maven et la valeur ajoutée d’un plugin dans un projet Maven. Comprenez la notion de ‘Goal’ associée. Identifiez les deux grandes catégories de plugin : plugin de build et plugin de génération de rapports. Identifiez des fournisseurs de plugins (Maven, codehaus, google…) ainsi que la stratégie de configuration d’un plugin.
Découvrez le plugin d’aide ‘help’ qui vous aidera à découvrir ce qu’un plugin sait faire. Comprenez enfin la stratégie de création d’un plugin.
Liens utiles
[Page officielle des plugins Maven->http://maven.apache.org/plugins/index.html
]
Guide développement de plugin Maven
Guide configuration de plugin Maven
Prérequis, outils et versions
Tutoriel Maven N°1 : Installation Maven
Objectifs
Comprendre la notion et le role d’un plugin maven
Mettre en oeuvre certains plugins
Comprendre le processus de création d’un plugin
Comprendre la configuration d’un plugin
Programme
Partie 1 : plugin et phases Maven
Partie 2 : où trouvez un plugin ?
Partie 3 : Comprendre le plugin ‘help’
Partie 4 : Comprendre la configuration d’un plugin
Partie 5 : Comprendre la création d’un plugin
Durée
30min
PUBLICITE : votre formation ‘Intégration continue’ avec Objis
Partie 1 : plugin et phases Maven
Dans Maven, toutes les taches sont réalisées par des plugins.
En particuliers, à chacune des phases Maven est associé un ou plusieurs plugins réalisant les taches attendus par la phase.
Tout plugin correspond des goals = taches . Pour utiliser une des taches (= savoir-faire) d’un plugin , lancer mvn plugin:tache (Ex : mvn archetype:generate) avec des paramètres (-Dparam1=valeur)
QUESTION : précisez quels sont les plugin et les goals des phases suivantes :
compile
package
deploy
QUESTION : précisez le nombre de goal du plugin ‘compiler’
Partie 2 : où trouver un plugin ?
Plugin hébergés par le projet Maven
A partir de la page de présentation plugins du projet maven :
— identifiez 5 ‘core’ plugins. Qu’est ce qu’un ‘core’ plugin ?
— identifiez 5 ‘packaging ‘ plugins (permettant de réaliser de livrables J2ee)
— identifiez 5 ‘reporting’ plugins (permettant de réaliser des rapports maven).
Précisez dans quelle section du fichier pom.xml configurer ces plugins. Par exemple avec le plugin : compiler
Plugin Codehaus
QUESTION : qu’est ce que Codehaus ?
A partir de la [page de présentation plugins du projet maven
— identifiez 5 plugins hébergés par codeHaus.org
Plugin Google
A partir de la page de présentation plugins du projet maven , précisez 5 plugins hébergés par google.
Plugin d’outils
A partir de la page de présentation plugins du projet maven , précisez 5 plugins d’outils hébergés par le projet associé.
Partie 3 : comprendre le plugin help
INFO : Le goal ‘describe’ du plugin maven ‘help’ vous permet de mieux connaître et comprendre d’autres plugins (taches, paramètres…)
Quel est par exemple le résultat des commandes suivantes ?
mvn help:describe -Dplugin=help
mvn help:describe -Dplugin=help -Ddetail
mvn help:describe -Dplugin=help -Dfull
mvn help:describe -Dplugin=help -Dmojo=system -Dfull
Application au plugin archetype
Quel est le résultat des commandes suivantes ?
mvn help:describe -Dplugin=archetype
mvn help:describe -Dplugin=archetype -Ddetail
mvn help:describe -Dplugin=archetype -Dfull
En déduire au moins 3 autres savoir-faire (goal) du plugin archetype (en plus de create et generate).
Partie 4 : comprendre la configuration d’un plugin
A partir du guide de configuration de plugin Maven :
Configuration plugin de build
Expliquez le rôle des balises ‘executions’, ‘dependencies’, ‘inherited’
QUESTION : précisez la configuration du plugin ‘compiler’
Configuration plugin de reporting
Expliquez le rôle des balises ‘reportset’, ‘inherited’
Partie 5 : comprendre la création d’un plugin
— INFO : 1 plugin = 1 ou plusieurs ‘goal’
— INFO : 1 goal = 1 Mojo (Maven Old Java Object)
— INFO : 1 Mojo = une classe Java héritant de la classe AbstractMojo
A VOUS DE JOUER : Téléchargez l’exemple suivant de création de plugin et lancer avec maven sa phase d’installation:
Téléchargez ensuite cet autre projet maven qui va utilisez notre plugin durant sa phase de validation:
Essayez à présent de comprendre le code et les fichiers pom qui se trouvent dans ces deux projets. Vous pouvez vous aidez avec la documentation d’apache suivante: documentation Maven sur la création de plugin
— Quel est le code minimal de notre Mojo? Que fait-il?
— Comment le nom du goal est-il précisé?
— Il y a un paramètre, comment est-il défini? Ajoutez une valeur par défaut.
— Ajoutez un autre paramètre avec une valeur par défaut: le nom du fichier.
— Quelles sont les dépendances nécessaires dans le pom de notre plugin?
— Après la phase d’installation, observez le fichier targetgenerated-sourcesplugincomobjisdemomavenHelpMojo.java
— Quel parti du pom a permis de générer ce fichier?
— Pour pouvoir lancer votre plugin en ligne de commande rajoutez ces balises à votre fichiers settings.xml dans la section
:
— Essayez ensuite de lancer la commande mvn TP3-demo:help
— Dans TP3-demoappsimple comment faisons-nous appel à notre plugin?
— Lancez une phase de validation. Que se passe-t-il dans les logs et dans le répertoire target.
— Changez la phase de déclenchement de notre plugin.
— Essayez les valeurs par défaut des paramètres puis essayez de spécifier des valeurs.
— Essayez d’ajoutez un paramètre de type List.
Conclusion
Dans ce tutoriel, vous avez découvert la notion de plugin MAVEN. Vous avez compris la relation entre plugin et phases. Vous avez identifié différents plugins : build, reporting. Vous avez aussi vu comment créer votre propre plugin.