Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide
Consultez :
  • Les documents de reference sur le projet original
  • Les sources de la traduction fr sur GitHub
  • maven


    11.4. Écrire un plugin personnalisé

    Pour écrire un plugin, vous devez créer un ou plusieurs Mojo (goal). Chaque Mojo est représenté par une classe Java qui contient des annotations pour indiquer à Maven comment générer le descripteur de plugin. Avant de commencer à écrire vos classes Mojo, vous devez commencer par créer un projet Maven avec le type de packaging approprié.

    11.4.1. Création d'un projet Plugin

    Pour créer un projet Plugin, vous pouvez utiliser le plugin Maven Archetype. La ligne de commande suivante se chargera de générer un projet yant pour groupId org.sonatype.mavenbook.plugins, et first-maven-plugin comme artifactId :

    $ mvn archetype:create \
      -DgroupId=org.sonatype.mavenbook.plugins \
      -DartifactId=first-maven-plugin \
      -DarchetypeGroupId=org.apache.maven.archetypes \
      -DarchetypeArtifactId=maven-archetype-mojo

    Le plugin Archetype va créer ainsi le répertoire nommé my-first-plugin qui contiendra le POM suivant.

    Exemple 11.2. Le POM d'un projet de plugin

    <?xml version="1.0" encoding="UTF-8"?><project>
      <modelVersion>4.0.0</modelVersion>
      <groupId>org.sonatype.mavenbook.plugins</groupId>
      <artifactId>first-maven-plugin</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>maven-plugin</packaging>
      <name>first-maven-plugin Maven Mojo</name>
      <url>http://maven.apache.org</url>
      <dependencies>
        <dependency>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-plugin-api</artifactId>
          <version>2.0</version>
        </dependency>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>

    L'élément le plus important d'un POM de projet de plugin est la balise packaging, celle-ci doit contenir la valeur maven-plugin. Ce type de packaging personnalise le cycle de vie Maven pour inclure les goals nécessaires à la création du descripteur de plugin. Le cycle de vie Plugin a été présenté dans le Section 4.2.3, « Plugin Maven », il ressemble fortement au cycle de vie Jar à ces trois exceptions près : le goal plugin:descriptor est rattaché à la phase generate-resources, le goal plugin:addPluginArtifactMetadata est rattaché à la phase package, et le goal plugin:updateRegistry est rattaché à la phase install.

    L'autre partie importante d'un POM de projet de plugin est la dépendance sur Maven Plugin API. Ici, le projet dépend de la version 2.0 de maven-plugin-api et ainsi que de JUnit pour les tests unitaires.