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.6.3. Surcharge du cycle de vie par défaut

    Une fois que vous avez créé votre propre cycle de vie et que vous l'avez lancé depuis un Mojo, la question suivante que vous pouvez vous poser est comment surcharger le cycle de vie par défaut. Comment créer un cycle de vie personnalisé et comment le rattacher à vos projets ? Dans le Chapitre 4, Cycle de vie du build, nous avons vu que le type de packaging d'un projet définit son cycle de vie. Le comportement différe selon les types de packaging, ainsi war a rattaché différents goals au cycle de vie pour construire son package. Les cycles de vie personnalisés, comme swf, provenant du plugin Israfil Flex 3, rattachent différents goals à la phase compile. Lorsque vous créez un cycle de vie personnalisé, vous pouvez rattacher celui-ci à un type de packaging en fournissant une configuration Plexus dans l'archive de votre plugin.

    Pour définir un nouveau cycle de vie pour un nouveau type de packaging, vous devez configurer le composant LifecycleMapping dans Plexus. Dans votre projet plugin, créez un fichier META-INF/plexus/components.xml sous src/main/resources. Éditez ce fichier et ajoutez lui le contenu de l'Exemple 11.11, « Redéfinition du cycle de vie par défaut ». Mettez le nom du type de packaging dans role-hint, et rattachez les goals aux phases en utilisant leurs coordonnées (sans la version). Vous pouvez associer plusieurs goals à une phase en utilisant une liste séparée par des virgules.

    Exemple 11.11. Redéfinition du cycle de vie par défaut

    <component-set>
      <components>
        <component>
          <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
          <role-hint>zip</role-hint>
          <implementation>
            org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping
          </implementation>
          <configuration>
            <phases>
              <process-resources>
                org.apache.maven.plugins:maven-resources-plugin:resources
              </process-resources>
              <compile>
                org.apache.maven.plugins:maven-compiler-plugin:compile
              </compile>
              <package>org.sonatype.mavenbook.plugins:maven-zip-plugin:zip</package>
            </phases>
          </configuration>
        </component>
      </components>
    </component-set>
    


    Si vous créez un plugin qui définit un nouveau type de packaging et un nouveau cycle de vie, vous devez affecter la balise extensions à true dans le POM de votre projet. Cela a pour effet de demander à Maven de scanner votre plugin à la recherche du fichier components.xml dans le répertoire META-INF/plexus. Ainsi, votre nouveau type de packaging sera rendu disponible dans votre projet.

    Exemple 11.12. Configuration d'un plugin en Extension

    <project>
      ...
      <build>
        ...
        <plugins>
          <plugin>
            <groupId>com.training.plugins</groupId>
            <artifactId>maven-zip-plugin</artifactId>
            <extensions>true</extensions>
          </plugin>
        </plugins>
      </build>
    </project>
    


    Une fois que vous avez ajouté le plugin avec sa balise extensions activée, vous pourrez utiliser votre nouveau type de packaging. Votre projet pourra ainsi exécuter le cycle de vie personnalité associé à celui-ci.