2009-08-20 11 views
3

私はいくつかの設定可能なパラメータを持つmavenプラグインを作成しています。 Mojoクラスにはいくつかのパラメータが指定されています。これらのパラメータの1つが必須であり、特定の値を含んでいる必要があります(「Atwood」または「Spolsky」のいずれか)。現時点では、aで注釈が付けられています。 @requiredフィールドここに示して:Java Mavenプラグインの設定パラメータを制限する

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

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

すべてが順調と良いですが、誰かが、彼らはそうのような一般的なエラーメッセージを取得し、パラメータを含めることを忘れた場合、どの:

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

のいずれかに可能である場合(1)someParmeterフィールドに入力できる値を制限してより良いエラーメッセージを表示するか、(2) "someParameter 'の値が' Atwood 'または' Spolsky '?

おかげ

答えて

2

のMaven 2.2のパラメータ値を列挙型のサポートを追加するためのオープンJiraは、(それがすでにJava 5の上の神経叢にサポートされています)があります。

デフォルト値を指定すると、少なくともMojoは初期化に失敗しません。次に、execute()メソッドでパラメータの値を検証し、より有用なメッセージを出力できます。

実際のデフォルト値がない場合は、execute()メソッドで無効になる値をデフォルト値に設定できます。これは、ユーザーが定義する必要があり、意味のあるエラーメッセージが表示されることを意味します。例:

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

ありがとうございます。偽のデフォルト値を使用すると効果的です。 – Lehane

+0

私はそれが偉大だとは思わない、列挙型ははるかに良い解決策であるとしてそのジラを見守って –

関連する問題