2009-08-20 4 views
3

J'écris un plugin maven avec un certain nombre de paramètres configurables. Un certain nombre de paramètres sont spécifiés dans la classe Mojo. Un de ces paramètres est requis et doit contenir certaines valeurs (disons, 'Atwood' ou 'Spolsky'). Il actuellement est annoté avec un. champ @Required comme montre ici:Restriction des paramètres de configuration du plugin Java maven

public class GenerateMojo extends AbstractMojo{ 
    ... 
    ... 

    /** 
    *@parameter 
    *@required 
    */ 
    private String someParameter; 
    ... 
    ... 
} 

Ce qui est bien beau, mais si quelqu'un oublie d'inclure le paramètre qu'ils obtiennent un message d'erreur générique comme ceci:

Inside the definition for plugin 'xyz' specify the following: 
<configuration>  
    ... 
    <someParameter>VALUE</someParameter> 
</configuration> 

Si est possible soit (1) restreindre les valeurs qui peuvent être entrées dans le champ someParmeter pour donner un meilleur message d'erreur, ou (2) spécifier le message d'erreur moi-même afin que je puisse écrire quelque chose comme "La valeur de 'someParameter' doit être soit 'Atwood 'ou' Spolsky '??

Merci

Répondre

2

Il y a un Jira ouvert pour ajouter le support pour les énumérations à des valeurs de paramètres dans Maven 2.2 (il est déjà pris en charge dans Plexus sur Java 5).

Vous pouvez spécifier une valeur par défaut pour qu'au moins Mojo n'échoue pas lors de l'initialisation. Vous pouvez ensuite valider la valeur du paramètre dans la méthode execute() et afficher un message plus utile.

S'il n'y a pas de défaut par défaut, vous pouvez définir la valeur par défaut qui sera invalidée dans la méthode execute(), cela signifie que l'utilisateur devra le définir et qu'il recevra un message d'erreur significatif. Par exemple:

/** 
* @parameter expression="${someParameter}" default-value="_" 
*/ 
private String someParameter; 
+0

Merci, en utilisant une valeur par défaut bidon fonctionnera très bien. – Lehane

+0

Je ne dirais pas que c'est génial, gardez un oeil sur ce Jira comme enums sont une bien meilleure solution –

Questions connexes