倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

プラグインを作ろう! (12) -- その他のパラメータレベル・アノテーション

今回は、パラメータに付加するアノテーションを幾つかご紹〜介。 詳しくはこちらを参照。

@required


必ず設定が必要なパラメータがある場合、「@required アノテーション」を付加します:

/**
 * @parameter
 * @required
 */
private String target

もし POM ファイルでも「mvn コマンド」の実行時にもパラメータ値が設定されなければ、ビルド・エラーが発生します。 ただし、default-value 等が指定されていれば、ビルド・エラーは発生しません。

@readonly


expression 引数などでパラメータの値を設定した後、その値が変更されたくない場合があります。 これには「@readonly アノテーション」を使用します:

/**
 * @parameter expression="${user.home}"
 * @readonly
 */
private String target

POM ファイルや「mvn コマンド」の引数によって値が設定されようとするとビルド・エラーが発生します。

@parameter alias="..."


パラメータ名が長い場合や逆に意味が分かりにくい場合などは、パラメータに別名 (alias) を付けると便利です。 これには、@parameter に引数 alias を付加します*1

/**
 * @parameter alias="circular-constant"
 */
private Double pi

パラメータ値は以下のように設定することができます:

<configuration>
  <circular-constant>3.14159265358979323846264338327950288</circular-constant>
</configuration>

ちなみに、alias を指定している場合でも通常の方法でパラメータ値を設定することもできます:

<configuration>
  <pi>3.141592</pi>
</configuration>

*1:alias 引数を2つ以上付けると、一番最後のものだけが認識されるようです。 これは maven2 というより JavaDoc アノテーションの性質かもしれませんが。