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


    17.5.4. Paramètres des annotations d'un Mojo

    À moins d'insister pour écrire vos descripteurs de plugin vous-même, vous ne devriez pas à avoir à écrire la moindre ligne de XML. À la place de cela, le plugin Maven Plugin dispose d'un goal plugin:descriptor qui est rattaché à la phase generate-resources. Ce goal génère le descripteur de plugin à partir d'annotations sur votre Mojo. Pour configurer un paramètre de Mojo, vous pouvez utiliser les annotations présentées ci-dessous sur chacun des des champs privés du Mojo. Il est aussi poiisble de mettre ces annotations sur les accesseurs publics du Mojo. Cependant, la convention veut que l'on configure les plugins Maven en utilisant les annotations directement sur les champs.

    @parameter [alias="someAlias"] [expression="${someExpression}"] [default-value="value"]

    Marque comme paramètre un champ privé (ou un accesseur). L'alias fournit le nom du paramètre. Si l'alias n'est pas renseigné, Maven utilise le nom de la variable comme nom du paramètre. L'expression est l'expression utilisée par Maven pour obtenir une valeur du paramètre. L'expression fait souvent référence à une propriété : ${echo.message}. La valeur par défaut est renseignée par default-value, celle-ci est utilisée si aucune valeur ne peut être obtenue à partir de l'expression ou si aucune valeur n'a été fournie par la configuration du plugin dans le POM.

    @required

    Si cette annotation est présente, ce paramètre doit obligatoirement être renseigné avant l'exécution du Mojo. Si Maven essaye d'exécuter le Mojo alors que ce paramètre est nul alors Maven va lancer une erreur.

    @readonly

    Si cette annotation est présente, alors l'utilisateur ne peut peut pas configurer ce paramètre via le fichier POM. Cette annotation est utilisée en combinaison avec l'attribut expression de l'annotation de ce paramètre. Par exemple, si vous voulez être sure que cette propriété possède la valeur que la propriété finalName du POM, vous utiliserez l'expression ${build.finalName} et rajouterez l'annotation @readOnly. Ainsi, l'utilisateur ne pourra changer la valeur de ce paramètre qu'en changeant la valeur du finalName dans le POM.

    @component

    Demande à Maven d'injecter un composant Plexus dans le champ. Voici un exemple d'utilisation de cette annotation @component :

    @component role="org.codehaus.plexus.archiver.Archiver" roleHint="zip"
    

    Cette ligne a pour effet de récupérer le composant ZipArchiver à partir de Plexus. Il s'agit de l'Archiver qui correspond au role hint zip. An lieu d'injecter des composants, vous pouvez également utiliser l'annotation @parameter en utilisant une expression :

    @parameter expression="${component.org.codehaus.plexus.archiver.Archiver#zip}"
    

    Si ces deux annotations ont le même comportement, l'annotation @component est à privilégier pour configurer des dépendances sur des composants Plexus.

    @deprecated

    Indique que ce paramètre est déprécié. Les utilisateurs peuvent continuer de configurer ce paramètre, mais un warning sera affiché.