IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

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.

SommaireDéveloppement de plugins (6)
précédent sommaire suivant
 

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.

Mis à jour le 22 septembre 2006 elitost Jibee

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>

Mis à jour le 22 septembre 2006 elitost Jibee

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.

Mis à jour le 22 septembre 2006 elitost Jibee

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();

Mis à jour le 22 septembre 2006 elitost Jibee

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.

Mis à jour le 22 septembre 2006 elitost Jibee

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

Mis à jour le 31 août 2007 elitost

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 ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

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