FAQ MavenConsultez toutes les FAQ
Nombre d'auteurs : 11, nombre de questions : 97, dernière mise à jour : 12 mai 2014 Ajouter une question
Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com et de l'expérience personnelle des auteurs.
Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.
- Comment créer un plugin Java ?
- Comment définir un paramètre au plugin ?
- Comment récupérer les propriétés du projet exécutant le plugin ?
- Comment ajouter une saisie utilisateur pendant l'exécution d'un plugin ?
- Comment mapper un goal sur une phase du cycle de vie de Maven ?
- Comment voir les sources d'un plugin ?
Dans une console de commandes, exécuter la commande suivante :
Code batch : | Sélectionner tout |
1 2 | mvn archetype:create -DgroupId=exempleplugin -DartifactId=exemple-plugin -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-mojo -DarchetypeVersion=1.0-alpha-4 |
Vous trouverez une classe Java nommée /exemple-plugin/src/main/java/exempleplugin/MyMojo.java contenant le code du plugin.
Ce modèle de plugin généré par l'archetype a créé un goal nommé touch. Pour utiliser ce plugin, il faut maintenant l'installer.
Dans une console de commandes, accéder au répertoire du projet de plugin, et exécuter la commande suivante :
Code batch : | Sélectionner tout |
mvn install
Puis, exécuter la commande suivante :
Code batch : | Sélectionner tout |
mvn exempleplugin:exemple-plugin:touch
Vous verrez alors un répertoire target créé dans le répertoire projet et un fichier touch.txt à l'intérieur.
En ajoutant une variable de classe dans le fichier Java du plugin comme ceci :
Code java : | Sélectionner tout |
1 2 3 4 5 6 | /** * Mon paramètre. * @parameter expression="${mymavenparameter}" * @required */ private String myJavaParameter; |
Nous venons de créer une variable myJavaParameter, de type String, obligatoire(@required) et correspondant au paramètre mymavenparameter du pom.xml du projet exécutant le plugin :
Code xml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <project> ... <build> <plugins> <plugin> <groupId>exempleplugin</groupId> <artifactId>exemple-plugin</artifactId> <configuration> <mymavenparameter>valeur</mymavenparameter> </configuration> </plugin> </plugins> </build> ... </project> |
En ajoutant la variable de classe suivante (avec l'annotation) :
Code java : | Sélectionner tout |
1 2 3 4 5 6 | /** * Projet en cours de deploiement. * @parameter expression="${project}" */ private org.apache.maven.project.MavenProject project; |
Vous disposez maintenant d'une variable project qui sera automatiquement initialisée par Maven à l'exécution. Vous avez maintenant accès aux informations telles que le groupId, l'artifactId, la version du projet, etc.
Pour cela, il faut utiliser l' API plexus-interactivity-api.
Ajoutez la dépendance dans votre pom.xml :
Code xml : | Sélectionner tout |
1 2 3 4 5 | <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-interactivity-api</artifactId> <version>1.0-alpha-4</version> </dependency> |
Définir la variable de classe suivante dans votre classe Mojo :
Code java : | Sélectionner tout |
1 2 3 4 5 | /** * inputHandler * @component */ private InputHandler inputHandler; |
Et ajouter le code suivant dans le code de votre plugin pour demander une saisie utilisateur :
Code java : | Sélectionner tout |
String inputvalue = inputHandler.readLine();
Pour mapper un goal sur la commande mvn package par exemple, il faut ajouter l'annotation suivante dans la classe Java du goal en question :
Code java : | Sélectionner tout |
1 2 3 4 5 6 7 | /**
* Mon goal
*
* @goal touch
*
* @phase package
*/ |
Pour activer cette configuration, il faut ajouter dans le pom.xml du projet exécutant le plugin une balise execution :
Code xml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | <build> <executions> <execution> <id>goal-execution-id</id> <goals> <goal>touch</goal> </goals> </execution> </executions> </build> |
Avec cette configuration, le goal touch s'éxecutera à chaque appel de la commande mvn package, en complément de celle-ci.
Les sources des plugins Maven sont accessibles, ce qui permet à la fois de voir comment est réalisé un plugin, mais également de proposer votre participation.
Prenons pour exemple le plugin clean, dont la page principale est http://maven.apache.org/plugins/maven-clean-plugin. Les sources du plugin clean sont visibles dans un navigateur via ViewVC à l'adresse suivante http://svn.apache.org/viewvc/maven/p...n-clean-plugin.
On peut également créer une copie locale du plugin clean en utilisant Subversion avec la commande suivante :
Code batch : | Sélectionner tout |
svn checkout http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-clean-plugin maven-clean-plugin
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.