ArgumentProcessor
はコマンドライン引数のパーサーで、ビルドファイルのパーシングの前後で呼び出されます。これにより、サード・パーティライブラリではAntの挙動を変更する独自のコマンドライン引数を利用できるようになります。
ArgumentProcessor
はAntが未知の引数をパーシングするたびに呼び出されます。すでにサポートされているオプションをパーシングする場合にArgumentProcessor
はAntより優先されることはありません。このため、サードパーティのArgumentProcessor
の実装では1文字の引数などは避け、十分に具体的な引数名を選ぶことをお勧めします。
また、異なった挙動が実装されるよう、段階的に呼び出されます。すべての引数がパーシングされた直後、プロジェクトが設定される直前(ビルドファイルがパーシングされる前)、および設定直後に呼び出されます。実装されるメソッドの一部はブーリアン値を返します。true
が返されると、Antはエラーなしで直ちに終了します。
ArgumentProcessor
はこのようなすべての段階で呼び出されるため、一部のシステムプロパティだけを出力して終了(-diagnoseなど)、またはプロジェクトの一部プロパティをパーシング後に出力して終了(-projectHelpなど)したり、プロジェクトのカスタムプロパティを設定して実行を継続するだけにとどめることができます。
まず、ArgumentProcessor
はorg.apache.tools.ant.ArgumentProcessor
の実装でなければなりません。
次に、実装クラスの完全修飾名のみ一行記載したファイルMETA-INF/services/org.apache.tools.ant.ArgumentProcessorを作成します。このファイルと実装クラスはAntのクラスパスに見つかる必要があります。