Soutenez-nous
Les FAQs Java :
FAQ JAVA FAQ Java EE FAQ Java ME FAQ Java XML FAQ JavaFX FAQ Java GUI FAQ Struts FAQ JSF FAQ JDBC JDO FAQ Hibernate FAQ Spring FAQ Eclipse FAQ NetBeans FAQ JCreator FAQ Maven 2

FAQ Maven 2Consultez toutes les FAQ

Nombre d'auteurs : 4, nombre de questions : 89, dernière mise à jour : 17 mai 2009 

 
OuvrirSommaireDéveloppement de plugins

Dans une console de commandes, exécuter la commande suivante :

Création d'un squelette de plugin
Sélectionnez

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 :

Installation du plugin
Sélectionnez

mvn install

Puis, exécuter la commande suivante :

Exécution du goal touch
Sélectionnez

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.

Créé le 22 septembre 2006  par Jibee, Eric Reboisson

En ajoutant une variable de classe dans le fichier Java du plugin comme ceci :

 
Sélectionnez

/**
* 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 :

Utilisation du paramètre
Sélectionnez

<project>
...
  <build>
    <plugins>
      <plugin>
          <groupId>exempleplugin</groupId>
          <artifactId>exemple-plugin</artifactId>
          <configuration>
          <mymavenparameter>valeur</mymavenparameter>
        </configuration>
      </plugin>
    </plugins>
  </build>
...
</project>	
Créé le 22 septembre 2006  par Jibee, Eric Reboisson

En ajoutant la variable de classe suivante (avec l'annotation) :

Récupération des propriétés de projet
Sélectionnez

/**
* 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.

Créé le 22 septembre 2006  par Jibee, Eric Reboisson

Pour cela, il faut utiliser l'API plexus-interactivity-api.

Ajoutez la dépendance dans votre pom.xml :

Ajout de plexus-interactivity-api
Sélectionnez

<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 :

Récupération des propriétés de projet
Sélectionnez

/**
* inputHandler
* @component
*/
private InputHandler inputHandler;

Et ajouter le code suivant dans le code de votre plugin pour demander une saisie utilisateur :

Saisie utilisateur
Sélectionnez

String inputvalue = inputHandler.readLine();
Créé le 22 septembre 2006  par Jibee, Eric Reboisson

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 :

Récupération des propriétés de projet
Sélectionnez

/**
 * 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 :

Association du goal
Sélectionnez

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

Créé le 22 septembre 2006  par Jibee, Eric Reboisson

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/plugins/trunk/maven-clean-plugin.

On peut également créer une copie locale du plugin clean en utilisant Subversion avec la commande suivante :

Checkout du projet du plugin clean
Sélectionnez

svn checkout http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-clean-plugin maven-clean-plugin
Créé le 31 août 2007  par Eric Reboisson

Lien : FAQ SCM : Subversion

  

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 © 2006 - 2014 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.