Tutoriel maven : plugins Maven

////Tutoriel maven : plugins Maven

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

formation-integration-continue-usine-logicielle-objis-maillons

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.

tutoriel-maven-installation-analyse-7bis

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)

plugin_goal.png

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:

TP3-demoplugin

Téléchargez ensuite cet autre projet maven qui va utilisez notre plugin durant sa phase de validation:

TP3-demoappsimple

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 :
com.objis.demomaven

— 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.

PUBLICITE : votre formation ‘Intégration continue’ avec Objis

formation-integration-continue-usine-logicielle-objis-maillons

2018-01-31T07:38:28+00:00

Contactez nous

241 rue DUGUESCLIN, 69003 Lyon

Web : Objis : spécialiste formation Java