コマンドラインプロセッサープラグイン: ArgumentProcessor

ArgumentProcessorとは

ArgumentProcessorはコマンドライン引数のパーサーで、ビルドファイルのパーシングの前後で呼び出されます。これにより、サード・パーティライブラリではAntの挙動を変更する独自のコマンドライン引数を利用できるようになります。

ArgumentProcessorはAntが未知の引数をパーシングするたびに呼び出されます。すでにサポートされているオプションをパーシングする場合にArgumentProcessorはAntより優先されることはありません。このため、サードパーティのArgumentProcessorの実装では1文字の引数などは避け、十分に具体的な引数名を選ぶことをお勧めします。

また、異なった挙動が実装されるよう、段階的に呼び出されます。すべての引数がパーシングされた直後、プロジェクトが設定される直前(ビルドファイルがパーシングされる前)、および設定直後に呼び出されます。実装されるメソッドの一部はブーリアン値を返します。trueが返されると、Antはエラーなしで直ちに終了します。

ArgumentProcessorはこのようなすべての段階で呼び出されるため、一部のシステムプロパティだけを出力して終了(-diagnoseなど)、またはプロジェクトの一部プロパティをパーシング後に出力して終了(-projectHelpなど)したり、プロジェクトのカスタムプロパティを設定して実行を継続するだけにとどめることができます。

独自のArgumentProcessorを登録する方法

まず、ArgumentProcessororg.apache.tools.ant.ArgumentProcessorの実装でなければなりません。

次に、実装クラスの完全修飾名のみ一行記載したファイルMETA-INF/services/org.apache.tools.ant.ArgumentProcessorを作成します。このファイルと実装クラスはAntのクラスパスに見つかる必要があります。