著
Version 1.2 - 2000/10/24
AntはJavaベースのビルドツールです。 理論的には、makeの持っているような問題点を持たないmakeの一種です。
すでにmakeや、gnumake、nmake、jamなどが存在する時代に、なぜ別のビルドツールが必要なのでしょうか? それは、複数のプラットフォームにまたがってソフトウェアを開発する時に、これらのツールのすべてが、そのオリジナルの著者が対応できなかった限界があるからです。 makeのようなツールは、本質的にシェルベースです。 それらは、依存性の集合を評価して、シェル上で実行するようにコマンドを実行します。 これは、あなたが仕事をしているOSに対して任意のプログラムを使用したり、書くことで、これらのツールを用意に拡張できることを意味しています。 しかし、これは同時に自分で仕事をするOSや、UnixのようなOSのタイプを限定してしまうことも意味します。
さらに、Makefileは本質的に良くありません。 それを使ったことがあるすべての人は、それがいつであっても、やっかいなタブの問題に直面したことがあるでしょう。 "タブの前に一個の空白があったために、私のコマンドが実行されない!!!"とAntのオリジナルの著者は何度も言い続けてきました。 Jamのようなツールは、この問題を大部分解消してくれますが、まだ別のフォーマットを使用しているので、それを覚える必要があります。
しかし、Antは違います。 シェルベースのコマンドを拡張したモデルの代わりに、Javaのクラスの使用方法を拡張します。 シェルコマンドを記述するかわりに、設定ファイルにさまざまな実行するタスクのターゲットツリーの呼び出しをXMLベースで記述します。 それぞれのタスクは、ある特別のTaskインターフェイスを実装したオブジェクトによって実行されます。
ただし、これは`find . -name foo -exec rm {}`のようなシェルコマンドが記述可能であることによって得られる表現力を削除することになりますが、かわりにクロスプラットフォーム性が得られます。 どこでも、どんな場所でも動作するわけです。 そして、シェルコマンドの実行が本当に必要な場合には、AntはOSによって異なるコマンドを許容して、それを実行する実行規則を持っています。
Antの最新の安定したバージョンは、 http://jakarta.apache.org/builds/ant/release/v1.2/bin/からダウンロードできます。 不安定かもしれないバージョンを使ってみたい場合には、最新版がhttp://jakarta.apache.org/builds/ant/nightly/からダウンロードできます。
ソース版を選択したい場合には、Antを http://jakarta.apache.org/builds/ant/release/v1.2/src/ (最近の安定したバージョン)またはhttp://jakarta.apache.org/from-cvs/jakarta-ant/ (現在のバージョン)からダウンロードできます。 Antをソースコードからビルドする方法については、 Antのビルドの節を見てください。
Antをビルドして使用するためには、JAXP準拠のXMLパーザをインストールして、クラスパスから利用できる必要があります。
JAXP準拠のXMLパーザをインストールしていない場合には、Sunからリファレンス実装を入手することができます。 これは、http://java.sun.com/xmlから入手できます。 インストールした後に、"jaxp.jar"と"parser.jar"があなたのクラスパスに存在することを確認してください。
さらに、あなたのシステムにバージョン1.1以降のJDKをインストールする必要があります。
ディレクトリjakarta-antに移動します。
JDKが、パスに存在することを確認します。
JAVA_HOME環境変数を設定します。 これは、JDKをインストールしたディレクトリを設定しなければいけません。 あなたのOSでこれを設定する方法の例は、Antのインストールを参照してください。
Antのブートストラップバージョンをビルドするために、
bootstrap.bat (Windows)またはbootstrap.sh (UNIX)
を実行します。
終了してから、Windowsの場合には
build.bat -Dant.dist.dir=<directory to install Ant> dist
を実行し、Unixの場合には
build.sh -Dant.dist.dir=<directory to install Ant> dist
を実行して、Antのバイナリ版を作成します。 この配布は、あなたの指定したディレクトリで見つかります。
Antのバイナリ配布は、binと
docs、libの3つのディレクトリから構成されています。
binとlibディレクトリだけは、Antを実行するために不可欠です。
Antを実行するためには、以下のように実行しなければいけません。
binディレクトリをパスに追加します。binとlibディレクトリを含むディレクトリに設定しなければいけません。Antをc:\ant\にインストールしたと仮定します。
以下のように環境を設定してください。
set ANT_HOME=c:\ant set JAVA_HOME=c:\jdk1.2.2 set PATH=%PATH%;%ANT_HOME%\bin
Antを/usr/local/antにインストールしたと仮定します。
以下のように環境を設定してください。
export ANT_HOME=/usr/local/ant
export JAVA_HOME=/usr/local/jdk-1.2.2
export PATH=${PATH}:${ANT_HOME}/bin
Antは、さまざまな設定で使用できます。 少なくとも以下のような設定が必要になるでしょう。
Antのクラスパスは、ant.jarとあなたが選択したJAXP準拠のXMLパーザのJAR/クラスファイルを含んでいなければいけません。
(javacタスクや、rmicタスクのような)JDKの機能が必要な時には、JDK 1.1ではJDKのclasses.zipファイルを、JDK 1.2やJDK1.3ではtools.jarをクラスパスに追加しなければいけません。
binディレクトリに存在するAntに付属しているスクリプトは、
JAVA_HOME環境変数が設定されている場合には、
tools.jarを自動的に追加します。
(execタスクやcvsタスクのように)
プラットフォーム固有のアプリケーションを実行する時には、
プロパティant.homeを、Unix上でexecタスクを実行するために必要なantRunシェルスクリプトがあるbinディレクトリを含むディレクトリに設定しなければいけません。
前の節で述べたようにAntをインストールすれば、Antは実行は簡単です。
単に、antと入力するだけです。
何も指定しなければ、Antはカレントディレクトリ中のbuild.xmlファイルを探します。
見つかった時にはそのファイルをビルドファイルとして使用しますが、見つからない時にはファイルシステムのルートに到達するまで親ディレクトリを探していきます。
Antに別のビルドファイルを使用させるためには、
コマンドラインオプション-buildfile <ファイル>を使用します。
この<ファイル>は、あなたが使用したいビルドファイルです。
さらに、ビルドファイルで指定したプロパティ(propertyタスクを参照)をオーバーライドするプロパティを設定することもできます。 これは、-D<プロパティ>=<値>オプションと一緒に実行すれば可能です。 なお、この<プロパティ>はプロパティ名で、<値>はその値です。 ちょうど-DMYVAR=%MYVAR% (Windows)や-DMYVAR=$MYVAR (Unix)のようにAntに渡すことで、これをあなたの環境変数にアクセスするために使用することも(そして、Javaは環境変数にアクセスできないので、これが唯一の方法です)できます。 さらにあなたのビルドファイル内では、${MYVAR}としてこれらの変数にアクセスすることができます。
さらに、 Antが実行中にコンソールにあまり情報を出力しないように指示する-quietと、 逆にAntが実行中にコンソールにもっと情報を出力するようにする-verboseとう2つのオプションがあります。
一つ以上の実行ターゲットを指定することもできます。 ターゲットを省略した時には、プロジェクトのdefault属性で指定されているターゲットを使用します。
-projecthelpオプションは、このプロジェクトのターゲットのリストを出力します。 最初に、解説付きのターゲットを、次に解説なしのターゲットを出力します。
以下に、コマンドラインオプションの概要を示します。
ant [options] [target [target2 [target3] ...]] Options: -help print this message -projecthelp print project help information -version print the version information and exit -quiet be extra quiet -verbose be extra verbose -debug print debugging information -emacs produce logging information without adornments -logfile <file> use given file for log -logger <classname> the class which is to perform logging -listener <classname> add an instance of class as a project listener -buildfile <file> use given buildfile -D<property>=<value> use value for given property
ant
これは、Antをカレントディレクトリ内のbuild.xmlを使用して、デフォルトのターゲットに対して実行します。
ant -buildfile test.xml
これは、Antをカレントディレクトリ内のtest.xmlファイルを使用して、デフォルトのターゲットに対して実行します。
ant -buildfile test.xml dist
これは、Antをカレントディレクトリ内のtest.xmlファイルを使用して、distと呼ぶターゲットに対して実行します。
ant -buildfile test.xml -Dbuild=build/classes dist
これは、Antをカレントディレクトリ内のtest.xmlを使用して,distと呼ぶターゲットに対して実行します。
さらに、buildプロパティに値build/classesを設定します。
Antを自分自身の方法でインストールした時には、Antを次のように起動します。
java -Dant.home=c:\ant org.apache.tools.ant.Main [オプション] [ターゲット]
この説明は、実際にはantコマンドと同じです。
オプションとターゲットは、Antをantコマンドを使って実行する時と同じです。
この例は、クラスパスが以下のファイルを含むように設定していると仮定しています。
ビルドファイルは、XMLで記述します。 各ビルドファイルは、一つのプロジェクトを含んでいます。
ビルドファイルのそれぞれの要素は、id属性を持つことができ、
後からこれに与えた値を使って参照できます。
この値は、一意でなくてはいけません。
プロジェクト(project)は、次の3つの属性を持っています。
| 属性 | 説明 | 必須 |
| name | ターゲットの名前。 | Yes |
| default | ターゲットが指定されない時に使用するデフォルトターゲット。 | Yes |
| basedir | すべてのパスの処理がおこなわれるベースディレクトリ。 この属性は、"basedir"プロパティを設定することでオーバーライドすることができます。 これをおこなった時には、プロジェクトタグが除外されるかもしれません。 | Yes |
各プロジェクトは、一つ以上のターゲットを定義します。 一つのターゲットは、あなたが実行したいタスクの集合です。 Antを起動した時に、どのターゲットを実行したいかを選択することができます。 ターゲットを指定しない場合には、そのプロジェクトのデフォルトが使用されます。
ターゲット(target)は、他のターゲットに依存することができます。 たとえば、コンパイルのためのターゲットと、配布を作成するためのターゲットがあるとします。 配布ターゲットがコンパイルターゲットに依存していれば、配布をビルドするだけで、最初にコンパイルすることができます。 Antは、これらの従属性を解決します。
Antは、depends属性のターゲットを、出現順(左から右に)実行しようとします。 次に示すように、早く出現するターゲットが他に依存している場合には、それを先に実行しようとすることができることを覚えておいてください。
<target name="A"/> <target name="B" depends="A"/> <target name="C" depends="B"/> <target name="D" depends="C,B,A"/>
ターゲットDを実行したいと仮定します。 このdepends属性から、あなたは最初にターゲットCを、次にBを、そしてAを実行すると考えるかもしれません。 しかし、それは誤りです。 CはBに依存し、BはAに依存しているので、最初にA、次にB、次にC、そして最後にDを実行します。
ターゲットは、多くのターゲットがそれに依存している場合でさえも、一回だけ実行しようとします(前の例を見てください)。
ターゲットは、プロパティが設定されている(またはされていない)場合に、それを実行する能力も持っています。 たとえば、これによって、システムの状態(Javaのバージョン、OS、コマンドラインプロパティなど)に依存したビルドプロセスをよりうまく制御できるようになります。 ターゲットがこのプロパティを検出できるようにするためには、 ターゲットが反応しなければならないプロパティの名前を持つif (またはunless)属性を、次のように追加しなければいけません。
<target name="build-module-A" if="module-A-present"/><target name="build-own-fake-module-A" unless="module-A-present"/>
ifとunless属性が存在しない場合には、ターゲットは常に実行されます。
すべての他のターゲットが依存している、いわゆる初期化ターゲットの中に あなたのtstampタスクを配置するのは、良い練習になるでしょう。 ターゲットが他のターゲットの依存リストの中で常に最初であることを確認してください。 このマニュアルでは、大部分の初期化ターゲットは、"init"という名前を持っています。
選択可能なdescription属性は、このターゲットに-projecthelpコマンドラインオプションを使用したときに印字される一行の説明を用意するために使用することができます。
ターゲットは、以下のような属性を持っています。
| 属性 | 説明 | 必須 |
| name | ターゲットの名前。 | Yes |
| depends | このターゲットが依存するターゲットの名前のカンマで区切られたリスト。 | No |
| if | このターゲットを実行するために適切に設定しなければならないプロパティの名前。 | No |
| unless | このターゲットを実行するために設定してはいけないプロパティの名前。 | No |
| description | このターゲットの機能の簡単な説明。 | No |
タスクは、一つの実行可能なコードです。
タスクは、複数の属性(または、あなたが選んだ引数)を持つことができます。 属性の値は、プロパティに対する参照を含むことができます。 この属性の参照は、タスクが実行される前に解決されます。
タスクは、次のような共通の構造を持っています。
<name attribute1="value1" attribute2="value2" ... />
このnameはタスクの名前であり、attribute-xは属性名、そしてvalue-xはこの属性の値です。
これが組み込みタスクの集合ですが、独自のタスクを記述することも簡単です。
すべてのタスクは、taskname属性を持っています。
この属性の値は、Antが生成するロギングメッセージで使用されます。
プロジェクトは、プロパティの集合を持つことができます。 これらは、propertyタスクによってビルドファイル中で設定されるかもしれませんし、Antの外で設定されるかもしれません。 プロパティは、名前と値を持っています。 プロパティは、タスクの属性の値で使用することができます。 これは属性の値の中で "${"と"}"の間にプロパティ名を書くことで可能です。
値"build"を持つ"builddir"と呼ぶプロパティが存在する場合には、属性内で "${builddir}/classes" のように使用することができます。 これは、"build/classes"として解決されます。
Antは、すべてのシステムプロパティに対して、 propertyタスクを使って定義してあるかのようにアクセスすることができます。 たとえば、${os.name}は、オペレーティングシステムの名前に展開されます。
さらに、Antは次のような組み込みプロパティを知っています。
<project name="MyProject" default="dist" basedir=".">
<!-- このビルドのためにグローバルプロパティを設定します -->
<property name="src" value="." />
<property name="build" value="build" />
<property name="dist" value="dist" />
<target name="prepare">
<!-- タイムスタンプを作成します -->
<tstamp/>
<!-- コンパイルで使用するビルドディレクトリ構造を作成します -->
<mkdir dir="${build}" />
</target>
<target name="compile" depends="prepare">
<!-- ${src}から${build}に、Javaコードをコンパイルします -->
<javac srcdir="${src}" destdir="${build}" />
</target>
<target name="dist" depends="compile">
<!-- ${dist}/libディレクトリを作成します -->
<mkdir dir="${dist}/lib" />
<!-- ${build}の中のすべてのファイルをMyProject-${DSTAMP}.jarファイルに格納します -->
<jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}" />
</target>
<target name="clean">
<!-- ${build}と${dist}ディレクトリツリーを削除します -->
<delete dir="${build}" />
<delete dir="${dist}" />
</target>
</project>
プロジェクトは、 これをサポートしているタスクでフィルタリング-コピーの動作が選択された場合には、 ファイルのコピー時にファイルが見つかれば、 自動的に展開することができるトークンの集合を持つことができます。 これはビルドファイル中で filterタスクを使って設定できます。
これは非常に有害な動作なので、ファイル中のトークンは@token@の形式でなければいけません。 tokenは、filterタスクで設定されたトークン名です。 このトークンの文法は、このようなフィルタリングを実行できる他のビルドシステムの文法と一致し、 大部分のプログラミング言語やスクリプト言語、及びドキュメンテーションシステムと直交しています。
注意: @token@の形式のトークンがファイル中に見つかっても、そのトークンに関連づけられたフィルタがない場合には、何も変更されません。 だから、エスケープする方法はありませんが、トークンに対して適切な名前を選択する限りにおいては、これが問題を引き起こすことはありません。
":"と";"を区切り文字として使用したPATHとCLASSPATH変数を指定することができます。 Antは、それを現在のオペレーティングシステムの正しい文字に変換します。
PATHのような値を指定する時には、常にネストした要素が使用できます。 これは、次のような一般的な形式を取ります。
<classpath>
<pathelement path="${classpath}" />
<pathelement location="lib/helper.jar" />
</classpath>
path属性が
":"や";"で区切られた位置のリストを受け付けるのに対して、
location属性は、プロジェクトのベースディレクトリに対して相対的な(または絶対ファイル名の)単一のファイルまたはディレクトリを指定します。
path属性は、すでに定義済みのパスと一緒に使われることを意図しています -
他の場合には、location属性を使った複数の要素が使われます。
pathとlocation属性をサポートしたPATH要素を理解する早道としては、
<classpath>
<pathelement path="${classpath}" />
</classpath>
は、次のように短縮することができます。
<classpath path="${classpath}" />
さらに、FileSetは、
ネストした<fileset>要素で指定することができます。
PATH類似構造にFileSetを構成するファイルが追加される順番は、定義されていません。
<classpath>
<pathelement path="${classpath}" />
<fileset dir="lib">
<include name="**/*.jar" />
</fileset;>
<pathelement location="classes" />
</classpath>
これは、${classpath}の値の後に、
libディレクトリ中のすべてのJARファイルを追加し、
さらにclassesディレクトリを追加したPATHを構築します。
複数のタスクに同じPATH類似構造を使用したい場合には、
それらをtargetと同じレベルで
<path>要素を使って定義し、
そのid属性で参照できます -
例は、参照を見てください。
PATH類似構造は、ネストした<path>要素を使って、他のPATH類似構造に対する参照を含むことができます。
<path id="base.path">
<pathelement path="${classpath}" />
<fileset dir="lib">
<include name="**/*.jar" />
</fileset;>
<pathelement location="classes" />
</path>
<path id="tests.path">
<path refid="base.path" />
<pathelement location="testclasses" />
</path>
いくつかのタスクは、別プロセスにコマンドラインで渡す引数を受け取ることができます。 空白文字を含む引数指定を簡単にするために、ネストした要素を使用できます。
| 属性 | 説明 | 必須 |
| value | 単一のコマンドライン引数で、空白文字を含むことができます。 | この中の一つだけです。 |
| line | コマンドライン引数の空白で区切られたリスト。 | |
| file | 単一のコマンドライン引数としてのファイルの名前。 Antが、ファイルの絶対ファイル名に置換します。 | |
| path | 単一のコマンドライン引数として扱われる文字列。 パスセパレータとして;や:を使用できますし、Antはそれをプラットフォームのローカルの規則に変換します。 |
<arg value="-l -a" />
これは、空白文字を含む単一のコマンドライン引数です。
<arg line="-l -a" />
これは、二つのコマンドライン引数を表現しています。
<arg path="/dir;/dir2:\dir3" />
これは
DOSベースのシステム上では\dir;\dir2;\dir3で、
Unix類似システムでは/dir:/dir2:/dir3の値を持つ
単一のコマンドライン引数です。
ビルドファイルの要素のid属性は、それを参照するために使用できます。
これは、XMLの同じ一部を何度も複製する - たとえば、<classpath>構造を二度以上使用する場合に便利です。
以下の例では、
<project ... >
<target ... >
<rmic ...>
<classpath>
<pathelement location="lib/" />
<pathelement path="${java.class.path}/" />
<pathelement path="${additional.path}" />
</classpath>
</rmic>
</target>
<target ... >
<javac ...>
<classpath>
<pathelement location="lib/" />
<pathelement path="${java.class.path}/" />
<pathelement path="${additional.path}" />
</classpath>
</javac>
</target>
</project>
これは、次のように書き換えることができます。
<project ... >
<path id="project.class.path">
<pathelement location="lib/" />
<pathelement path="${java.class.path}/" />
<pathelement path="${additional.path}" />
</path>
<target ... >
<rmic ...>
<classpath refid="project.class.path" />
</rmic>
</target>
<target ... >
<javac ...>
<classpath refid="project.class.path" />
</javac>
</target>
</project>
PatternSetや、FileSet、PATH類似構造に対してネストした要素を使用するすべてのタスクは、これらの構造に対してリファレンスを受け付けます。
ある種のタスクは、実行するタスクのためにディレクトリツリーを使用します。 たとえば、Javacタスクは、ディレクトリツリー上で.javaファイルと動作します。 そのようなディレクトリツリーのサブセットに対して作業できることは、時々非常に便利です。 この節では、そのようなディレクトリツリーのサブセットを選択する方法について説明します。
Antは、以下の2つの方法でサブセットを作成することができますが、両方を同時に使用することもできます。
包含と除外の両方が使用される時には、包含パターンにマッチしても、除外パターンにマッチしないファイル/ディレクトリだけが使用されます。
パターンは、ビルドファイル内部で、タスクの属性やネストした要素と、外部ファイルなどの手段を用いて指定できます。 外部ファイルの各行は、包含パターンや除外パターンのリストに追加されて、パターンとみなされます。
この前で説明したように、パターンは包含と除外のために使用されます。 これらのパターンは、次に示すように、DOSやUNIXで使用されているパターンと良く似ています。
'*'はゼロ個以上の文字とマッチしますが、'?'は一文字とマッチします。
例:
'*.java'は'.java'と'x.java'、'FooBar.java'にマッチしますが、'FooBar.xml'にはマッチしません (最後が'.java'ではありません)。
'?.java'は'x.java'と'A.java'にマッチしますが、'.java'や'xyz.java'にはマッチしません (どちらも'.java'の前にあるのは1文字ではありません)。
'*'と'?'を組み合わせは許されています。
マッチングはディレクトリに対してもおこなわれます。 これは、パターン中でマッチする最初のディレクトリは、パス中でマッチする最初のディレクトリであるという意味です。 その後、二番目のディレクトリがマッチします。 たとえば、パターン'/?abc/*/*.java'とパス'/xabc/foobar/test.java'がある場合に、まず最初に'?abc'は'xabc'にマッチし、次に'*'は'foobar'にマッチし、最後に'*.java'は'test.java'にマッチします。 すべてマッチした場合に、パスがパターンにマッチしたことになります。
少し融通が効くようにするために、私たちは複数のディレクトリレベルにマッチすることを可能にする特別な仕様を一つ追加しました。 これは、完全ディレクトリツリーや、ディレクトリツリー内のどこかにあるファイルにマッチするために使用します。 これをおこなうためには、'**'をディレクトリの名前として使用しなければいけません。 '**'が、パターン中のディレクトリの名前として使用された時には、それは0個以上のディレクトリにマッチします。 たとえば、'/test/**'は、'/test/x.java',や'/test/foo/bar/xyz.html'のような '/test/'の下のすべてのファイル/ディレクトリにマッチしますが、 '/xyz.xml'にはマッチしません。
一つの"略記法"として、パターンが'/'か'\'で終わっていた場合に'**'を追加します。 たとえば、 "mypackage/test/"は"mypackage/test/**"のように解釈されます。
例:
| **/CVS/* | ディレクトリツリーの任意の場所にあるCVSディレクトリ内のすべてのファイルにマッチします
以下のファイルにマッチします。 CVS/Repository しかし、以下のファイルにはマッチしません。 org/apache/CVS/foo/bar/Entries ('foo/bar/' part does not match) |
| org/apache/jakarta/** | org/apache/jakarta内のすべてのファイルにマッチします。
以下のファイルにマッチします。 org/apache/jakarta/tools/ant/docs/index.html しかし、以下のファイルにはマッチしません。 org/apache/xyz.java ('jakarta'/' part is missing) |
| org/apache/**/CVS/* | org/apacheの下任意のディレクトリにあるCVSディレクトリ内のすべてのファイルにマッチします。
以下のファイルにマッチします。 org/apache/CVS/Entries ただし、以下のファイルにはマッチしません。 org/apache/CVS/foo/bar/Entries ('foo/bar/' part does not match) |
| **/test/** | パスにディレクトリ'test'を持つすべてのファイルにマッチします。 ファイル名が'test'を含むファイルも含みます。 |
これらのパターンを包含や除外のために使うことで、必要なファイルだけを選択する強力な方法が得られます。
<copy todir="${dist}" >
<fileset dir="${src}"
includes="**/images/*"
excludes="**/*.gif"
/>
</copy>
これは、ディレクトリツリー"${src}"内で"images"と呼ばれるディレクトリ内のすべてのファイルを、"${dist}"にコピーしますが、 all "*.gif"ファイルはコピーしません。
この例はネストした要素を使って、次のように記述することができます。
<copy todir="${dist}" >
<fileset dir="${src}" />
<include name="**/images/*"/>
<exclude name="**/*.gif" />
</fileset>
</copy>
デフォルトですべてのディレクトリベースのタスクから除外される定義の集合があります。 それらは、以下の通りです。
"**/*~",
"**/#*#",
"**/%*%",
"**/CVS",
"**/CVS/*",
"**/.cvsignore"
デフォルトの除外集合を適用したくない場合には、
defaultexcludes="no"
属性を無効にしてください。
パターンを集合としてグループ化して、後からそのid属性で参照することができます。
これはpatternset要素で定義します - この要素はFileSetか、暗黙にFileSetを構成するディレクトリベースのタスクの中にネストして出現します。
さらに、patternsetは、targetと同じレベル - すなわち、projectの子として定義できます。
パターンは、ネストした<include>または<exclude>要素か、以下の属性で定義できます。
| 属性 | 説明 |
| includes | 包含しなければならないファイルのパターンのカンマで区切られたリスト。 省略された時には、すべてのファイルを含みます。 |
| includesfile | ファイルの名前。 このファイルの各行は、包含パターンとして解釈されます。 |
| excludes | 除外しなければならないファイルのパターンのカンマで区切られたリスト。 省略された時には、(デフォルト除外集合を除けば)除外されるファイルはありません。 |
| excludesfile | ファイル名。 このファイルの各行は、除外パターンとして解釈されます。 |
<patternset id="non.test.sources" > <include name="**/*.java" /> <exclude name="**/*Test*" /> </patternset>
すべての.javaファイルにマッチするが、その名前にテキストTestを含まないパターン集合を作成します。
この集合は、この機能をサポートしたタスクやファイルセットによって、
<patternset refid="non.test.sources"
/>で参照されます。
ファイルセットは、ファイルのグループです。
これらのファイルは、ベースディレクトリから開始するディレクトリツリー内で見つけることができ、多くのパターンセットからパターンによってマッチされます。
ファイルセットは、この機能をサポートしているか、targetと同じレベル - すなわちprojectの子として、タスクの内部で使用することができます。
パターンセットは、ネストした<patternset>要素として指定することができます。
さらに、ファイルセットは、暗黙のパターンセットを持っていて、
パターンセットの属性と同様に、
パターンセットのネストした<include>と<exclude>要素を直接サポートしています。
| 属性 | 説明 | 必須 |
| dir | このファイルセットのディレクトリツリーのルート。 | Yes |
| defaultexcludes | デフォルト除外集合を使用するかどうか("yes"/"no")を指定します。 省略した時には、デフォルト除外集合を使用します。 | No |
| includes | 包含しなければならないファイルのパターンのカンマで区切られたリスト。 省略した時には、すべてのファイルを含みます。 | No |
| includesfile | ファイル名。 このファイルの各行は、包含パターンとして解釈されます。 | No |
| excludes | 除外しなければならないファイルのパターンのカンマで区切られたリスト。 省略された時には、(デフォルト除外集合を除けば)除外されるファイルはありません。 | No |
| excludesfile | ファイル名。 このファイルの各行は、除外パターンとして解釈されます。 | No |
<fileset dir="${server.src}" >
<patternset id="non.test.sources" >
<include name="**/*.java" />
<exclude name="**/*Test*" />
</patternset>
</fileset>
ディレクトリ${server.src}内のJavaソースファイルであり、テキストTestを名前に含まないすべてのファイルをグループ化します。
<fileset dir="${client.src}" >
<patternset refid="non.test.sources" />
</fileset>
前の例と同じパターンを使用して、ディレクトリ${client.src}内のすべてのファイルをグループ化します。
与えられたビルドファイルでAntを実行します。これはサブプロジェクトをビルドするために使用します。
antfile属性が省略された時には、与えられたディレクトリ(dir属性)内のファイル"build.xml"を使用します。
target属性が与えられない場合には、新しいプロジェクトのデフォルトターゲットを使用します。
現在のプロジェクトのプロパティは、新しいプロジェクトでも利用できます。 これらのプロパティは、新しいプロパティ内で設定されるプロパティをオーバーライドします (propertiesタスクも参照してください)。 新しいプロジェクトのプロパティを、古いプロジェクトからネストしたpropertyタグを使用して設定することができます。 これによって、あなたのサブプロジェクトをパラメタ化することができます。
| 属性 | 説明 | 必須 |
| antfile | 使用するビルドファイル。 デフォルトは、"build.xml"。 | No |
| dir | 新しいAntのプロジェクトのbasedirとして使用するディレクトリ。 デフォルトは、カレントディレクトリ。 | No |
| target | 新しいAntプロジェクトが実行しなければならないターゲット。 | No |
| output | Antの出力を書き込むファイル名。 | No |
<ant antfile="subproject/subbuild.xml" dir="subproject" target="compile" />
<ant dir="subproject" />
<ant antfile="subproject/property_based_subbuild.xml">
<property name="param1" value="version 1.x" />
<property file="config/subproject/default.properties" />
</ant>
同じビルドファイルの別のターゲットを呼び出します。 同じプロパティ(このコンテキスト内のparamのプロパティ)を指定するかどうかは選択可能です。
| 属性 | 説明 | 必須 |
| target | 実行するターゲット。 | Yes |
指定したターゲットを実行する前に設定するプロパティを指定します。 使用方法のガイドラインとしてpropertyを参照してください。
<target name="default">
<antcall target="doSomethingElse">
<param name="param1" value="value"/>
</antcall>
</target>
<target name="doSomethingElse">
<echo message="param1=${param1}"/>
</target>
これは、ターゲット'doSomethingElse'を実行し、'param1=value'を出力します。
Antのビルドファイルのために、Antが現在知っているすべてのタスクについての情報を含むDTDを生成します。
このタスクが生成したDTDは不完全だということに注意して、常に<taskdef>を使用したXMLエントリを追加してください。
この問題を回避する方法は、ここを参照してください。
このタスクは、必要な属性については知らないので、すべて#IMPLIEDとしてリストします。
| 属性 | 説明 | 必須 |
| output | DTDを書き込むファイル。 | Yes |
<antstructure output="project.dtd" />
リソースがランタイムで利用できる場合に、プロパティを設定します。 このリソースは、ファイルリソースや、クラスパス中のクラス、JVMのシステムリソースなどです。
リソースが存在する場合は、デフォルトではプロパティの値はtrueに設定されますが、そうでなければプロパティは設定されません。 value属性を使用すれば、何か特別な値に設定できます。
通常では、このタスクはシステムパラメタに依存したtarget実行を回避するのに便利なプロパティを設定するために使用します。
| 属性 | 説明 | 必須 |
| property | 設定するプロパティの名前。 | Yes |
| value | プロパティに設定する値。 デフォルトは"true"。 | No |
| classname | クラスパス内を検索するクラス。 | Yes |
| resource | JVM内を検索するリソース。 | |
| file | 検索するファイル。 | |
| classpath | classnameを検索する時に使用するクラスパス。 | No |
Availableのclasspath属性は、PATH類似構造であり、ネストしたclasspath要素としても設定できます。
<available classname="org.whatever.Myclass" property="Myclass.present" />
Antのクラスパス中にorg.whatever.Myclassが見つかった場合に、
プロパティMyclass.presentを値"true"に設定します。
指定したディレクトリ内の単一、またはすべてのファイルのパーミッションを変更します。 現在は、Unixでのみ有効です。 パーミッションもUnix風で、chmodコマンドの引数に似ています。
ファイルの包含/排除の処理方法やパターンの記述方法については、 ディレクトリベースのタスクの節を参照してください。
このタスクは、暗黙のファイルセットを持っていて、
ファイルセットの属性のすべてと、ネストした要素を直接サポートしています。
さらに、ネストした<fileset>を使用して、ファイルセットを指定することができます。
| 属性 | 説明 | 必須 |
| file | パーミッションを変更しなければならないファイルまたは単一のディレクトリ。 | 2つ、またはネストした<fileset>要素の中の一つだけ。 |
| dir | パーミッションを変更しなければならないファイルを持っているディレクトリ。 | |
| perm | 新しいパーミッション | Yes |
| includes | 包含しなければならないファイルのパターンのカンマで区切られたリスト。 省略した時には、すべてのファイルを含みます。 | No |
| includesfile | ファイル名。 このファイルの各行は、包含パターンとして解釈されます。 | No |
| excludes | 除外しなければならないファイルのパターンのカンマで区切られたリスト。 省略された時には、(デフォルト除外集合を除けば)除外されるファイルはありません。 | No |
| excludesfile | ファイル名。 このファイルの各行は、除外パターンとして解釈されます。 | No |
| defaultexcludes | デフォルト除外集合を使用するかどうか("yes"/"no")を指定します。 省略した時には、デフォルト除外集合を使用します。 | No |
| parallel | すべての指定したファイルを単一のchmodコマンドを使用して処理するかどうかを指定します。
デフォルトはtrueです。 |
No |
| type | file、dir、bothの中の一つです。 fileを設定した場合には、プレーンファイルのパーミッションだけを変更します。 dirを設定した場合には、ディレクトリだけを処理対象にします。 | No。デフォルトはfileです。 |
<chmod file="${dist}/start.sh" perm="ugo+rx" />
これは、"start.sh"ファイルを、Unixシステムの任意のユーザに対して読み込み可能で実行可能にします。
<chmod dir="${dist}/bin" perm="ugo+rx" includes="**/*.sh" />
これは、${dist}/binの下のすべての".sh"ファイルを、Unixシステムの任意のユーザに対して読み込み可能で実行可能にします。
<chmod perm="g+w" />
<fileset dir="shared/sources1" >
<exclude name="**/trial/**" />
</fileset>
<fileset refid="other.shared.sources" />
</chmod>
これは、Unixシステム上の同じグループのメンバーに対してshared/sources1の下のすべてのファイル(ただし、trialという名前のディレクトリの下のファイルは除きます)を書き込み可能にします。
さらに、id other.shared.sourcesを持つファイルセットに属するすべてのファイルを同じパーミッションにします。
一つのファイルまたはファイルセットを、新しいファイルまたはディレクトリにコピーします。 ファイルは、元のファイルがコピー先のファイルより新しい場合か、コピー先にファイルが存在しない時にだけコピーされます。 しかし、overwrite属性でファイルをオーバーライトするように明示的に指定することもできます。
ファイルセットを、コピーするファイルを選択するために使用します。 ファイルセットを使用するためには、todir属性を設定しなければいけません。
| 属性 | 説明 | 必須 |
| file | コピーするファイル。 | fileか、少なくとも一つのネストしたfileset要素のどちらか一つ。 |
| tofile | コピー先のファイル。 | file属性には、tofileかtodirのどちらかを使用できます。 ネストしたファイルセットには、todirだけが許されています。 |
| todir | コピー先のディレクトリ。 | |
| overwrite | コピー先ファイルの方が新しい場合でも、既存のファイルをオーバーライトします。 デフォルトは"no"です。 | No |
| filtering | コピー中にトークンフィルタリングを実行するかどうかを指定します。 デフォルトは"no"です。 | No |
| flatten | コピー元のディレクトリのディレクトリ構造を無視して、すべてのファイルをtodirで指定した単一のディレクトリ中にコピーします。 デフォルトは"no"です。 | No |
| includeEmptyDirs | ネストしたファイルセットに含まれる空のディレクトリをコピーします。 デフォルトは"yes"です。 | No |
ファイルをコピーする
<copy file="myfile.txt" tofile="mycopy.txt" />
ファイルをディレクトリにコピーする
<copy file="myfile.txt" todir="../some/dir/tree" />
ディレクトリを別のディレクトリにコピーする
<copy todir="../new/dir">
<fileset dir="src_dir"/>
</copy>
ファイルの集合をディレクトリにコピーする
<copy todir="../dest/dir" >
<fileset dir="src_dir" >
<exclude name="**/*.java" />
</fileset>
</copy>
<copy todir="../dest/dir" >
<fileset dir="src_dir" excludes="**/*.java" />
</copy>
このタスクは推奨されません。 代わりにCopyタスクを使用してください。
コピー元からコピー先にディレクトリ構造をコピーします。
コピーするファイルの集合を絞り込むこともできます。 これにはincludesとincludesfile、excludes、excludesfile、defaultexcludes属性を使用します。 includesやincludesfile属性によって、パターンを使用して取り込みたいファイルファイルを指定します。 excludeやexcludesfile属性は、除外したいファイルを指定するために使用します。 これもパターンを使用します。 そして最後に、defaultexcludesによって、デフォルト除外集合を使用したいかどうかを指定できます。 ファイルの包含/排他の処理方法や、パターンを記述する方法については、 ディレクトリベースのタスクの節を参照してください。
このタスクは、暗黙のファイルセットを作成して、
ネストした<include>と<exclude>、
<patternset>のように、<fileset>のすべての属性(dirはsrcになります)をサポートします。
| 属性 | 説明 | 必須 |
| src | コピーするディレクトリ。 | Yes |
| dest | コピー先のディレクトリ。 | Yes |
| includes | 包含しなければならないファイルのパターンのカンマで区切られたリスト。 省略した時には、すべてのファイルを含みます。 | No |
| includesfile | ファイル名。 このファイルの各行は、包含パターンとして解釈されます。 | No |
| excludes | 除外しなければならないファイルのパターンのカンマで区切られたリスト。 省略された時には、(デフォルト除外集合を除けば)除外されるファイルはありません。 | No |
| excludesfile | ファイル名。 このファイルの各行は、除外パターンとして解釈されます。 | No |
| defaultexcludes | デフォルト除外集合を使用するかどうか("yes"/"no")を指定します。 省略した時には、デフォルト除外集合を使用します。 | No |
| filtering | コピー中にトークンフィルタリングを実行するかどうかを指定します。 | No |
| flatten | コピー元のディレクトリのディレクトリ構造を無視して、すべてのファイルをtodirで指定した単一のディレクトリ中にコピーします (デフォルトは"no"です)。 | No |
| forceoverwrite | コピー先のファイルが新しい場合でも、既存のファイルを上書きします (デフォルトはfalseです)。 | No |
<copydir src="${src}/resources"
dest="${dist}"
/>
これは、ディレクトリ${src}/resourcesを、${dist}にコピーします。
<copydir src="${src}/resources"
dest="${dist}"
includes="**/*.java"
excludes="**/Test.java"
/>
これは、ディレクトリ${src}/resourcesを${dist}に再帰的にコピーします。
Test.javaという名前を持つファイルを除き、すべてのJavaファイルをコピーします。
<copydir src="${src}/resources"
dest="${dist}"
includes="**/*.java"
excludes="mypackage/test/**" />
これは、ディレクトリ${src}/resourcesを${dist}に再帰的にコピーします。
mypackage/testディレクトリの下のファイルを除き、すべてのJavaファイルをコピーします。
このタスクは推奨されません。 代わりにCopyタスクを使用してください。
ファイルをコピー元からコピー先にコピーします。 このファイルは、コピー元のファイルがコピー先のファイルより新しい時か、コピー先のファイルが存在しない場合に限りコピーされます。
| 属性 | 説明 | 必須 |
| src | コピーするファイルのファイル名。 | Yes |
| dest | コピー先のファイルのファイル名。the filename of the file where to copy to. | Yes |
| filtering | iコピー中にトークンフィルタリングを実行するかどうかを指定します。 | No |
| forceoverwrite | コピー先のファイルが新しい場合でも、既存のファイルを上書きします (デフォルトはfalseです)。 | No |
<copyfile src="test.java" dest="subdir/test.java" />
<copyfile src="${src}/index.html" dest="${dist}/help/index.html" />
CVSリポジトリから取得したパッケージ/モジュールを処理します。
自動的にビルドする時には、速度の点で、checkoutコマンドよりも、getタスクを使用するべきです。
| 属性 | 説明 | 必須 |
| command | 実行するCVSコマンド。 | No, デフォルトは"checkout"です。 |
| cvsRoot | CVSROOT変数。 | No |
| dest | チェックアウトするファイルを置くディレクトリ。 | No, デフォルトはプロジェクトのbasedirです。 |
| package | チェックアウトするパッケージ/モジュール。 | No |
| tag | チェックアウトするパッケージ/モジュールのタグ。 | No |
| date | 指定された日以前で、もっとも新しいリビジョンを使用します。 | No |
| quiet | 情報を提供するメッセージを表示しないようにします。 | No, デフォルトは"false"です。 |
| noexec | 報告するだけで、ファイルを一切変更しません。 | No, デフォルトは"false"です。 |
| output | コマンドの標準出力をリダイレクトするファイル。 | No, デフォルトの出力はMSG_INFOで指定するANTログです。 |
| error | コマンドの標準エラー出力をリダイレクトするファイル。 | No, デフォルトの出力はMSG_INFOで指定するANTログです。 |
<cvs cvsRoot=":pserver:anoncvs@jakarta.apache.org:/home/cvspublic"
package="jakarta-tools"
dest="${ws.dir}"
/>
これは、cvsRoot属性で指定したCVSリポジトリから、"jakarta-tools"のパッケージ/モジュールをチェックアウトし、"${ws.dir}"にファイルを保存します。
<cvs dest="${ws.dir}" command="update" />
これは、すでに"${ws.dir}"にチェックアウトしてあるパッケージ/モジュールを更新します。
単独のファイルや、指定されたディレクトリとそのサブディレクトリに含まれるすべてのファイル、または一つ以上のFileSetで指定されたファイルの集合を削除します。 ファイルの集合が指定された時には、空のディレクトリは削除しません。
| 属性 | 説明 | 必須 |
| file | 削除するファイル。 | 2つのうち少なくとも1つ |
| dir | ファイルを削除するディレクトリ。 | |
| verbose | 削除する各ファイルの名前を表示します("true"/"false"). 省略された時のデフォルトは"false"です。 | No |
| includes | 推奨されません。 削除しなければならないファイルのパターンのカンマで区切られたリスト。 省略した時には、カレントディレクトリとすべてのサブディレクトリのファイルを削除します。 | No |
| includesfile | 推奨されません。 ファイル名。 このファイルの各行は、包含パターンとして解釈されます。 | No |
| excludes | 推奨されません。 削除リストから除外しなければならないファイルのパターンのカンマで区切られたリスト。 省略された時には、(デフォルト除外集合を除けば)除外されるファイルはありません。 | No |
| excludesfile | 推奨されません。 ファイル名。 このファイルの各行は、除外パターンとして解釈されます。 | No |
| defaultexcludes | 推奨されません。 デフォルト除外集合を使用するかどうか("yes"/"no")を指定します。 省略した時には、デフォルト除外集合を使用します。 | No |
<delete file="/lib/ant.jar" />
これは、ファイル/lib/ant.jarを削除します。
<delete dir="lib" />
これは、/libディレクトリのすべてのファイルを削除します。
<delete>
<fileset dir="." includes="**/*.bak" />
</delete>
これは、カレントディレクトリとそのすべてのサブディレクトリから、拡張子".bak"を持つすべてのファイルを削除します。
このタスクは推奨されません。 代わりにDeleteタスクを使用してください。
ディレクトリを、その中のすべてのファイルとサブディレクトリと一緒に削除します。
| 属性 | 説明 | 必須 |
| dir | 削除するディレクトリ。 | Yes |
<deltree dir="dist" />
これは、ディレクトリdistを、その中のファイルとサブディレクトリを含めて削除します。
<deltree dir="${dist}" />
これは、ディレクトリ${dist}を、その中のファイルとサブディレクトリを含めて削除します。
メッセージを、System.outかファイルに出力します。
| 属性 | 説明 | 必須 |
| message | 出力するメッセージ。 | Yes。ただし、この要素内のデータが文字の節で述べた文字でなければ。 |
| file | メッセージを書き込むファイル。 | No |
| append | すでに存在するファイルに追加するかどうか? | No - デフォルトはfalseです。 |
<echo message="Hello world" />
<echo> This is a longer message stretching over two lines. </echo>
システムコマンドを実行します。 os属性を指定した時には、指定されたオペレーティングシステムのどれかの上で実行されている時にだけ、そのコマンドを実行します。
| 属性 | 説明 | 必須 |
| command | すべてのコマンドライン引数を伴った実行するコマンド。
推奨されないので、代わりにexecutableとネストした<arg>要素を使用してください。 |
2つのうちどれか一つ。 |
| executable | コマンドライン引数を伴わない実行するコマンド。 | |
| dir | コマンドを実行するディレクトリ。 | No |
| os | コマンドを実行するかもしれないオペレーティングシステムのリスト。 | No |
| output | コマンドの出力をリダイレクトするファイル。 | No |
| timeout | 指定された時間内にコマンドが終了しない場合に、それを停止します(ミリ秒で指定します)。 | No |
| failonerror | コマンドが0以外のリターンコードで終了した場合に、ビルドプロセスを停止するかどうか。 | No |
<exec dir="${src}" executable="dir" os="windows" output="dir.txt" />
コマンドライン引数は、ネストした<arg>要素として指定します。
コマンドライン引数を参照してください。
ネストした<env>要素で、
システムコマンドに渡す環境変数を指定することができます。
<env>を使って変数を指定する場合には、現在のAntプロセスの環境を、システムコマンドに渡せないことに注意してください。
| 属性 | 説明 | 必須 |
| key | 環境変数の名前。 | Yes |
| value | 環境変数のリテラル値。 | どれか一つだけ。 |
| path | パス類似環境変数の値。 パスの区切りとして、; や :を使用することができ、Antはそれをプラットフォームのローカルな慣習に合わせて変換します。 | |
| file | 環境変数の値。 Antが、ファイルの絶対ファイル名に置換します。 |
<exec executable="emacs" > <env key="DISPLAY" value=":1.0" /> </exec>
これは、Xウィンドウシステムのディスプレイ1で、emacsを起動します。
<exec ... >
<env key="PATH" path="${java.library.path}:${basedir}/bin" />
</exec>
これは、システムコマンドのPATHに、${basedir}/binを追加します。
注意: 単純にarg要素を使って引数を指定すると動作しても、それらをスペースで区切ったら、JDKのより新しいバージョンに切り替えると動かないかもしれません。 JDK < 1.2では、それらを呼び出すプログラムに独立の引数として渡しますが、 JDK >= 1.2では、それらをまとまった一つの引数として渡すので、これが大部分の呼び出しが失敗する原因です。
注意2: antをWindowsで使用すると、コマンドを実行するごとに新しいDOS-Windowがポップアップしますが、これはあなたが使用しているJDKの問題です。 この問題は、すべての1.2以前のJDKで起ります。
システムコマンドを実行します。 os属性を指定した時には、指定されたオペレーティングシステムのどれかの上で実行されている時にだけ、そのコマンドを実行します。
ファイルセットの数のファイルと/またはディレクトリを、システムコマンドに引数として渡します。
少なくとも、一つのネストした<fileset>が必要です。
| 属性 | 説明 | 必須 |
| executable | コマンドライン引数を伴わない実行するコマンド。 | Yes |
| dir | コマンドを実行するディレクトリ。 | No |
| os | コマンドを実行するかもしれないオペレーティングシステムのリスト。 | No |
| output | コマンドの出力をリダイレクトするファイル。 | No |
| timeout | 指定された時間内にコマンドが終了しない場合に、それを停止します(ミリ秒で指定します)。 | No |
| failonerror | コマンドが0以外のリターンコードで終了した場合に、ビルドプロセスを停止するかどうか。 | No |
| parallel | コマンドを一回だけ実行して、すべてのファイルを引数として付加します。 デフォルトはtrueです。 falseの場合には、コマンドを各ファイルごとに一回実行します。 | No |
| type | file、dir、bothの中の一つです。 fileを設定した場合には、プレーンファイルの名前だけをコマンドに送ります。 dirを設定した場合には、ディレクトリの名前だけを考慮します。 | No, デフォルトはfile。 |
このタスクに対してファイルを定義するために、
任意の数のネストした<fileset>要素と
どこかで定義されている<fileset>を使用することができます。
コマンドライン引数は、ネストした<arg>要素として指定します。
コマンドライン引数を参照してください。
<env>要素で、
システムコマンドに渡す環境変数を指定することができます。
execについての節の解説を参照してください。
<env>を使って変数を指定する場合には、現在のAntプロセスの環境を、システムコマンドに渡せないことに注意してください。
<execon executable="ls" >
<arg value="-l" />
<fileset dir="/tmp">
<patternset>
<exclude name="**/*.txt" />
</patternset>
</fileset>
<fileset refid="other.files" />
</execon>
これは/tmp下の.txtで終了しないすべてのファイルと、id other.filesを持つファイルセットのすべてのファイルの絶対ファイル名をコマンドラインに追加して、ls -lを実行します。
現在のビルドを終了します(BuildExceptionを投げるだけです)が、付加情報を出力するように選択できます。
| 属性 | 説明 | 必須 |
| message | ビルドが終了した理由についての詳しい情報を知らせるメッセージ。 | No |
<fail/>
これは、現在のビルドを終了しますが、何も情報を知らせません。
BUILD FAILED build.xml:4: No message
<fail message="Something wrong here."/>
これは現在のビルドを終了し、次のようなメッセージを出力します。
BUILD FAILED build.xml:4: Something wrong here.
このプロジェクトにトークンフィルタを設定したり、入力ファイルから複数のトークンフィルタを読み込んでフィルタとして設定します。 プロジェクトの共通のメソッドを使ってファイルのコピー操作を実行するすべてのタスクが、トークンフィルタを使用します。
注意 1: トークン文字列は、区切り文字(@)を含んではいけません。
注意2: token属性とvalue属性か、filterfile属性のどちらか一方だけを指定しなければいけません。
| 属性 | 説明 | 必須 |
| token | @を含まないトークン文字列 | Yes* |
| value | ファイルをコピーする時にトークンを置換するために指定する文字列。 | Yes* |
| filtersfile | フィルタを読み込まなければならないファイル。 このファイルは、プロパティファイルとしてフォーマットしなければいけません。 | Yes* |
* パラメタ表の注意1と2を参照してください。
<filter token="year" value="2000" />
<copy todir="${dest.dir}">
<fileset dir="${src.dir}" />
</copy>
これは、src.dirディレクトリからdest.dirディレクトリに、含まれているすべての文字列@year@を2000に置換しながら、すべてのファイルを再帰的にコピーします。
<filter filterfile="deploy_env.properties" />これは、deploy_env.propertiesファイルからすべてのプロパティエントリを読み込んで、フィルタとして設定します。
テキストファイルをローカルに一致させます。
修正するファイルの集合を絞り込むこともできます。 これにはincludesとincludesfile、excludes、excludesfile、defaultexcludes属性を使用します。 includesやincludesfile属性によって、パターンを使用して取り込みたいファイルファイルを指定します。 excludeやexcludesfile属性は、除外したいファイルを指定するために使用します。 これもパターンを使用します。 そして最後に、defaultexcludesによって、デフォルト除外集合を使用したいかどうかを指定できます。 ファイルの包含/排他の処理方法や、パターンを記述する方法については、 ディレクトリベースのタスクの節を参照してください。
このタスクは、暗黙のファイルセットを作成して、
ネストした<include>と<exclude>、
<patternset>要素のように、<fileset>のすべての属性(dirはsrcdirになります)をサポートします。
| 属性 | 説明 | 必須 |
| srcDir | 修正するファイルを探す場所。 | Yes |
| destDir | 修正したファイルを保存する場所。 デフォルトはsrcDirです(オリジナルファイルを置換します)。 | No |
| includes | 包含しなければならないファイルのパターンのカンマで区切られたリスト。 省略した時には、すべてのファイルを含みます。 | No |
| includesfile | ファイル名。 このファイルの各行は、包含パターンとして解釈されます。 | No |
| excludes | 除外しなければならないファイルのパターンのカンマで区切られたリスト。 省略された時には、(デフォルト除外集合を除けば)除外されるファイルはありません。 | No |
| excludesfile | ファイル名。 このファイルの各行は、除外パターンとして解釈されます。 | No |
| defaultexcludes | デフォルト除外集合を使用するかどうか("yes"/"no")を指定します。 省略した時には、デフォルト除外集合を使用します。 | No |
| cr | キャリッジリターン (CR) 文字をどのように処理するかを指定します。
このプロパティの有効な値は、次のとおりです。
注意: このプロパティに"asis"を指定しない限り、LFの直前でない余分なCR文字は削除されます。 |
No |
| tab | タブ文字をどのように処理するかを指定します。
このプロパティの有効な値は、次の通りです。
注意: このプロパティに"asis"を指定しない限り、行末の空白以外の文字の後の余分なスペースやタブは、削除されます。 |
No |
| tablength | TABストップの文字数。 2の正の累乗でなければいけません。 このパラメタのデフォルトは8です。 | No |
| eof | DOSのファイル終端文字 (control-Z) をどのように処理するかを指定します。
このプロパティの有効な値は、次の通りです。
|
No |
<fixcrlf srcdir="${src}"
cr="remove" eof="remove"
includes="**/*.sh"
/>
シェルスクリプトからキャリッジリターンとEOF文字を削除します。 タブとスペースは、そのままにします。
<fixcrlf srcdir="${src}"
cr="add"
includes="**/*.bat"
/>
各ラインフィードの前にキャリッジリターン文字があることを保証します。 タブとスペースはそのままにします。 EOF文字は、DOSシステム上で動作する場合には、そのままにし、Unixシステム上で動作する場合は削除します。
<fixcrlf srcdir="${src}"
tabs="add"
includes="**/Makefile"
/>
ローカルのOSの慣習に一致するように、CR文字を追加または削除して、スペースをタブに適切に変換します。 DOSシステム上で実行する場合には、EOF文字はそのままにし、Unixシステム上で実行する場合には削除します。 makeの多くのバージョンでは、コマンドの前にタブが必要です。
<fixcrlf srcdir="${src}"
tabs="remove"
includes="**/README*"
/>
ローカルのOSの慣習に一致するように、CR文字を追加または削除して、すべてのタブをスペースに変換します。 EOF文字は、DOSシステム上で実行した場合にはそのままにし、Unixシステム上で実行した場合には削除します。 これで、ユーザがREADMEをどのエディタを使って見るかを知る必要がなくなります。
keystoreファイルに暗号鍵を生成します。
| 属性 | 説明 | 必須 |
| alias | 追加するエイリアス | Yes. |
| storepass | キーストアファイル保護のためのパスワード。 | Yes. |
| keystore | キーストアファイルの場所。 | No |
| storetype | キーストアのタイプ。 | No |
| keypass | 秘密鍵のパスワード (異なる場合) | No |
| sigalg | 署名に使用するアルゴリズム。 | No |
| keyalg | 名前と値の組を生成する時に使用する方法。 | No |
| verbose | 署名する時の詳しいメッセージ出力 (true | false) | No |
| dname | エンティティの識別名 | dname要素が指定されない場合はYes |
| validity | 証明書が何日間有効かを指定します (整数) | No |
| keysize | 生成する鍵のサイズを指定します (整数) | No |
この代わりに、dnameという名前の副要素を識別名を作成して、それを名前と値を持つparam要素を使って指定することができます。 この副要素を使う時には、プロパティは自動的にエンコードされ、','は置換されます。
次の2つの例は、まったく同じです。
<genkey alias="apache-group" storepass="secret" dname="CN=Ant Group, OU=Jakarta Division, O=Apache.org, C=US" />
<genkey alias="apache-group" storepass="secret" > <dname> <param name="CN" value="Ant Group"/> <param name="OU" value="Jakarta Division"/> <param name="O" value="Apache.Org"/> <param name="C" value="US"/> </dname> </genkey>
URLからファイルを取得します。 verboseオプションが"on"の時には、このタスクは100KB取得するごとに'.'を表示します。
自動的にビルドをする時には、CVSタスク上で このタスクを選択しなければいけません。 CVSは、圧縮したアーカイブをhttp/ftpでロードするよりも、著しく遅いです。
usetimestampsオプションによって、リモートファイルがローカルコピーより新しい場合にだけ取得するようにダウンロードを制御することができます。 ローカルコピーが存在しない場合には、常にダウンロードします。 ファイルをダウンロードした時には、JVMがJava 1.2以降の場合に、ダウンロードしたファイルのタイムスタンプはリモートのタイムスタンプに設定されます。 注意: このタイムスタンプ機能は、HTTPプロトコルを使ってダウンロードした時にだけ動作します。| 属性 | 説明 | 必須 |
| src | ファイルを取得する場所のURL。 | Yes |
| dest | 取得したファイルを保存する場所。 | Yes |
| verbose | 詳しい進行状況を表示します ("on"/"off")。 | No |
| ignoreerrors | エラーを記録しても、致命的なものとして扱いません。 | No |
| usetimestamps | ローカルコピーのタイムスタンプを元にファイルをダウンロードするかどうか判断します。 HTTPのみ。 | No |
<get src="http://jakarta.apache.org/" dest="help/index.html" />
http://jakarta.apache.org/のインデックスページを取得して、ファイルhelp/index.htmlとして保存します。
<get src="http://jakarta.apache.org/builds/tomcat/nightly/ant.zip" dest="optional.jar" verbose="true" usetimestamps="true"/>
ローカルコピーが存在しないか、古い場合に、Tomcatの配布から毎夜作成されるantのビルドを取得します。 進行状況を知るためにverboseオプションを使用します。
gzipファイルを展開します。
destがディレクトリの場合には、作成するファイルの名前はsrcと同じです(".gz"拡張子が存在する場合には、取り除きます)。 destが省略された場合には、srcの親ディレクトリに展開します。 元のファイルが展開先のファイルより新しいか、存在しない場合にだけファイルを展開します。
| 属性 | 説明 | 必須 |
| src | 展開するファイル。 | Yes |
| dest | 展開先のファイルかディレクトリ。 | No |
<gunzip src="test.tar.gz"/>
これは、test.tar.gzからtest.tarに展開します。
<gunzip src="test.tar.gz" dest="test2.tar"/>
これは、test.tar.gzからtest2.tarに展開します。
<gunzip src="test.tar.gz" dest="subdir"/>
これは、test.tar.gzからsubdir/test.tarに展開します(subdirがディレクトリと仮定します)。
ファイルをgzipします。
| 属性 | 説明 | 必須 |
| src | gzipするファイル。 | Yes |
| zipfile | 作成するファイル。 | Yes |
<gzip src="test.tar" zipfile="test.tar.gz" />
Jarはファイルの集合です。
basedir属性は、jarを実行するディレクトリを指定します。
ファイルのパーミッションは、生成したjarファイルには格納されないことに注意してください。
jarアーカイブのファイルの集合を絞り込むこともできます。 これにはincludesとincludesfile、excludes、excludesfile、defaultexcludes属性を使用します。 includesやincludesfile属性によって、パターンを使用して取り込みたいファイルファイルを指定します。 excludeやexcludesfile属性は、除外したいファイルを指定するために使用します。 これもパターンを使用します。 そして最後に、defaultexcludesによって、デフォルト除外集合を使用したいかどうかを指定できます。 ファイルの包含/排他の処理方法や、パターンを記述する方法については、 ディレクトリベースのタスクの節を参照してください。
このタスクは、暗黙のファイルセットを作成して、
ネストした<include>と<exclude>、
<patternset>のように、<fileset>のすべての属性(dirはbasedirになります)をサポートします。
より融通が聞くように、ネストしたファイルセットを使用して、一つのJARに異なるファイルのツリーを一緒に格納するために複数のファイルセットを指定できます。 詳細と例は、Zipを参照してください。
manifestが省略された場合には、Antが簡単なものを追加します。 あなたのファイルの集合に、META-INF/MANIFEST.MFを含めてはいけません。
whenemptyパラメタは、マッチするファイルがない時にどうするかを制御します。
create (デフォルト)の場合には、manifestだけのJARを作成します。
skipの場合には、JARを作成せずに、警告を出力します。
failの場合には、JARを作成せずに、ビルドがエラーで停止します。
| 属性 | 説明 | 必須 |
| jarfile | 作成するJARファイル。 | Yes |
| basedir | ファイルをJARするディレクトリ。 | No |
| compress | データを保存するだけでなく、圧縮する。デフォルトはtrue。 | No |
| includes | 包含しなければならないファイルのパターンのカンマで区切られたリスト。 省略した時には、すべてのファイルを含みます。 | No |
| includesfile | ファイル名。 このファイルの各行は、包含パターンとして解釈されます。 | No |
| excludes | 除外しなければならないファイルのパターンのカンマで区切られたリスト。 省略された時には、(デフォルト除外集合を除けば)除外されるファイルはありません。 | No |
| excludesfile | ファイル名。 このファイルの各行は、除外パターンとして解釈されます。 | No |
| defaultexcludes | デフォルト除外集合を使用するかどうか("yes"/"no")を指定します。 省略した時には、デフォルト除外集合を使用します。 | No |
| manifest | 使用するMANIFESTファイル。 | No |
| whenempty | 使用するファイルがマッチしない場合の挙動。 | No |
<jar jarfile="${dist}/lib/app.jar" basedir="${build}/classes" />
これは${build}/classesディレクトリ内のすべてのファイルを、${dist}/libディレクトリ内にあるapp.jarと呼ぶファイルの中にjarします。
<jar jarfile="${dist}/lib/app.jar"
basedir="${build}/classes"
excludes="**/Test.class"
/>
これは、${build}/classesディレクトリ内のすべてのファイルを、${dist}/libディレクトリ内にあるapp.jarと呼ぶファイルにjarします。
ただし、Test.classという名前のファイルは除外されます。
<jar jarfile="${dist}/lib/app.jar"
basedir="${build}/classes"
includes="mypackage/test/**"
excludes="**/Test.class"
/>
これは、${build}/classesディレクトリ内のすべてのファイルを、${dist}/libディレクトリ内にあるapp.jarと呼ぶファイルにjarします。
ただし、ディレクトリmypackage/testの下のファイルだけで、Test.classという名前のファイルは除外されます。
<jar jarfile="${dist}/lib/app.jar">
<fileset dir="${build}/classes"
excludes="**/Test.class"
/>
<fileset dir="${src}/resources"/>
</jar>
これは、${build}/classesディレクトリだけでなく、${src}/resourcesディレクトリ内のすべてのファイルを一緒に、${dist}/libディレクトリ内にあるapp.jarと呼ぶファイルにjarします。
ただし、Test.classという名前のファイルは除外されます。
${build}/classes/mypackage/MyClass.classと${src}/resources/mypackage/image.gifのようなファイルが存在する場合には、JARの同じディレクトリ内(そして、これはJavaでは同じパッケージ内だと考えられます)に格納されます。
(Antの)実行中のVMか、指定された場合には別のVMをフォークして、Javaのクラスを実行します。
System.exit()はVMを終了すると同時にAntも終了させるので、実行されるクラスではこれを呼び出さないように注意してください。 この問題が発生した場合には、 System.exit()が他のVMを停止させても、現在Antを実行中のVMは停止させないように、fork属性を設定することを強く推奨します。
| 属性 | 説明 | 必須 |
| classname | 実行するJavaのクラス。 | Yes |
| args | 実行するクラスに与える引数。
推奨されません。
代わりにネストした<arg>要素を使用してください。 |
No |
| classpath | 使用するクラスパス。 | No |
| classpathref | 使用するクラスパスを、任意の場所で定義したパスに対する参照として指定します。 | No |
| fork | 有効にした場合には、クラスの実行を別のVMでおこないます。 (デフォルトでは無効です) | No |
| jvm | Javaバーチャルマシンを起動するコマンドで、 デフォルトは'java'です。 このコマンドは、java.lang.Runtime.exec()で実行します。 forkが無効な場合は、無視されます。 | No |
| jvmargs | フォークするVMに渡す引数(forkが無効な場合は無視されます)。
推奨されません。代わりにネストした<jvmarg>要素を使用してください。 |
No |
| maxmemory | フォークするVMに割り当てるメモリの最大量 (forkが無効な場合は無視されます)。 | No |
| failonerror | コマンドが0以外のリターンコードで終了した場合には、ビルドプロセスを停止します。 forkがtrueな場合にのみ有効です。 | No |
| dir | VMを起動するディレクトリ。(forkが無効な場合には、無視されます)。 | No |
クラスやフォークしたVMに引数を指定するために、ネストした<arg>と<jvmarg>要素を使用します。
コマンドライン引数を参照してください。
クラスに必要なシステムプロパティを指定するためにネストした<sysproperty>要素を使用します。
これらのプロパティは、クラスの実行中のVM(Antを実行しているVMか、フォークしたVMのどちらか)に対して利用可能になります。
この要素に対する属性は、環境変数と同じです。
Javaのclasspath属性は、PATH類似構造であり、ネストしたclasspath要素でも設定できます。
<java classname="test.Main" >
<arg value="-h" />
<classpath>
<pathelement location="\test.jar" />
<pathelement path="${java.class.path}" />
</classpath>
</java>
<java classname="test.Main" />
<java classname="test.Main"
fork="yes" >
<sysproperty key="DEBUG" value="true" />
<arg value="-h" />
<jvmarg value="-Xrunhprof:cpu=samples,file=log.txt,depth=3" />
</java>
(Antの)VMを実行しているソースツリーをコンパイルします。
Javaソースファイルをコンパイルするために、コンパイル元とコンパイル先のディレクトリを再帰的に走査します。 Javaファイルは、対応するクラスファイルがないか、クラスファイルがJavaファイルよりも古い場合にのみ、コンパイルされます。
ソースツリーのディレクトリ構造は、パッケージ階層に従っていなければいけません。
コンパイル/コピーされるファイルの集合を絞り込むことができます。 これにはincludesとincludesfile、excludes、excludesfile、defaultexcludes属性を使用することができます。 includesやincludesfile属性によって、パターンを使用して取り込みたいファイルファイルを指定します。 excludeやexcludesfile属性は、除外したいファイルを指定するために使用します。 これもパターンを使用します。 そして最後に、defaultexcludesによって、デフォルト除外集合を使用したいかどうかを指定できます。 ファイルの包含/排他の処理方法や、パターンを記述する方法については、 ディレクトリベースのタスクの節を参照してください。
異なるコンパイラを使用できます。 これは、"build.compiler"プロパティで選択できます。 以下のように、3つの選択枝があります。
JDK 1.1/1.2では、classicがデフォルトです。 JDK 1.3では、modernがデフォルトです。
| 属性 | 説明 | 必須 |
| srcdir | Javaファイルの場所。 | ネストした<src>要素が存在しない限りYes |
| destdir | クラスファイルを保存する場所。 | No |
| includes | 包含しなければならないファイルのパターンのカンマで区切られたリスト。 省略した時には、すべてのファイルを含みます。 | No |
| includesfile | ファイル名。 このファイルの各行は、包含パターンとして解釈されます。 | No |
| excludes | 除外しなければならないファイルのパターンのカンマで区切られたリスト。 省略された時には、(デフォルト除外集合を除けば)除外されるファイルはありません。 | No |
| excludesfile | ファイル名。 このファイルの各行は、除外パターンとして解釈されます。 | No |
| defaultexcludes | デフォルト除外集合を使用するかどうか("yes"/"no")を指定します。 省略した時には、デフォルト除外集合を使用します。 | No |
| classpath | 使用するクラスパス。 | No |
| bootclasspath | ブートストラップ用クラスファイルの場所。 | No |
| classpathref | 使用するクラスパスですが、他で定義されているPATHに対する参照を指定します。 | No |
| bootclasspathref | ブートストラップ用クラスファイルの場所ですが、、他で定義されているPATHに対する参照を指定します。 | No |
| extdirs | インストールした拡張の場所。 | No |
| encoding | ソースファイルのエンコーディング。 | No |
| debug | デバッグ情報を付けてコンパイルするかどうかを指定します ("off")。 | No |
| optimize | 最適化オプションを付けてコンパイルするかどうかを指定します("off")。 | No |
| deprecation | deprecationオプションを付けてコンパイルするかどうかを指定します("off")。 | No |
| target | 指定したVMのバージョンに対して、クラスファイルを生成します。 たとえば、"1.1"や"1.2"です。 | No |
| verbose | コンパイラにより多くのメッセージを出力するかどうかを指定します。 | No |
| depend | 依存性の追跡をサポートしているコンパイラ(jikesやclassic)において、それを有効にします。 | No |
このタスクは、暗黙のファイルセットを持っていて、
ネストした<include>と<exclude>、<patternset>要素と同様に、
<fileset>の属性(dirはsrcdirになります)のすべてをサポートしています。
Javacのsrcdirとclasspath、
bootclasspath、extdirs属性は、href="#path">PATH類似構造であり、それぞれネストしたsrcとclasspath、bootclasspath、extdirs要素によって設定することができます。
<javac srcdir="${src}"
destdir="${build}"
classpath="xyz.jar"
debug="on"
/>
これは、ディレクトリ${src}の中のすべての.javaファイルをコンパイルして、ディレクトリ${build}に.classファイルを保存します。
使用するクラスパスはxyz.jarを含んでいて、デバッグ情報がonになっています。
<javac srcdir="${src}"
destdir="${build}"
includes="mypackage/p1/**,mypackage/p2/**"
excludes="mypackage/p1/testpackage/**"
classpath="xyz.jar"
debug="on"
/>
これは、ディレクトリ${src}の中のすべての.javaファイルをコンパイルして、ディレクトリ${build}に.classファイルを保存します。
使用するクラスパスはxyz.jarを含んでいて、デバッグ情報がonになっています。
ただし、mypackage/p1とmypackage/p2の下のファイルだけを使用します。
mypackage/p1/testpackageディレクトリの中のファイルは、コンパイルやコピーをしません。
<javac srcdir="${src}:${src2}"
destdir="${build}"
includes="mypackage/p1/**,mypackage/p2/**"
excludes="mypackage/p1/testpackage/**"
classpath="xyz.jar"
debug="on"
/>
これは、前のサンプルと同じですが、プロパティsrc2で定義される二番目のソースパスが追加されています。
これは、次のようなネストした要素を使用しても記述できます。
<javac destdir="${build}"
classpath="xyz.jar"
debug="on">
<src path="${src}" />
<src path="${src2}" />
<include name="mypackage/p1/**,mypackage/p2/**" />
<exclude name="mypackage/p1/testpackage/**" />
</javac>
注意: Windows上でAntを使用する場合には、外部コンパイラを使用するたびに新しいDOSのウィンドウがポップアップしますが、これはあなたが使用しているJDKの問題かもしれません。 この問題は、JDK以前のすべてのJDKで発生する可能性があります。
javadocツールを使用してコードのドキュメントを生成します。
処理するJavaソースファイルを探すために、ソースディレクトリを再帰的に走査しますが、そのうち包含規則にマッチするものだけがjavadocツールに渡されます。 このためにワイルドカード、パッケージ名を選択するためにワイルドカードが使用できるので、冗長さと全体の管理コストを削減することができます。 しかし、このタスクにはjavacタスクのような"変更された"ファイルの概念はありません。 これは、このタスクを実行するごとに、すべてのパッケージを処理することを意味しています。 しかし、一般的に、このタスクをそんなに頻繁に使用することはありません。
このタスクは、javadocのバージョン (1.1と1.2) が異なっても同様に動作しますが、1.2の属性が1.1のVMで実行する場合に無視されるという明白な制約があります。
注意: javadocはSystem.exit()を呼び出すので、機能に支障を与えずにjavadocをantと同一VM内で実行することはできません。 この理由から、このタスクは常に新たにVMを生成します。 javadocは一般に重いアプリケーションであり、頻繁に実行されることはないので、このオーバヘッドは重要ではありません。
注意: packagelist属性によって、Antファイルとは別のドキュメントのパッケージのリストを指定することができます。 ただし、build.xmlファイル内ですべてを指定する方が、より実際的です。 このオプションは、javadocのこのオプションを使用することで、通常のmakefileからの移行を容易にするために追加されています。 packagelistでリストされているパッケージはチェックされないので、パッケージが失われていたり、壊れている場合でさえも、タスクを実行します。 だから、既存のmakefileから変換したい場合に、このオプションを使用してください。 一旦うまく実行できるようになったら、通常の記法に切り替えるべきです。
DEPRECATION: javadoc2タスクは、単にjavadocタスクを指定するだけで、互換性を保つために残されています。 このタスクは将来のバージョンでは削除される可能性があるので、代わりにjavadocを使用することを強く勧めます。
| 属性 | 説明 | 利用可能環境 | 必須 |
| sourcepath | ソースファイルを探す場所を指定します。 | all | 少なくとも二つのうち一つか、ネストした<sourcepath>。 |
| sourcepathref | ソースファイルを探す場所を任意の場所で定義されたPATHに対する参照を用いて指定します。 | all | |
| destdir | ファイルを出力先ディレクトリ。 | all | Yes |
| maxmemory | javadocを実行するVMに割り当てる最大メモリ量。 | all | No |
| sourcefiles | ソースファイルの空白で区切られたリスト。 | all | 少なくとも2つのうち一つ。 |
| packagenames | (ワイルドカードで終了する) パッケージファイルのコンマで区切られたリスト | all | |
| packageList | 処理するパッケージを含むファイル名。 | all | No |
| classpath | ユーザのクラスファイルを探す場所の指定。 | all | No |
| Bootclasspath | ブートストラップクラスローダがロードするクラスファイルの場所をオーバライドします。 | 1.2 | No |
| classpathref | 任意の場所で指定された参照によって、ユーザのクラスファイルを探す場所を指定します。 | all | No |
| bootclasspathref | 任意の場所で定義したPATHに対する参照によって、ブートストラップクラスローダがロードするクラスファイルの場所をオーバライドします。 | 1.2 | No |
| Extdirs | インストールした拡張の場所をオーバライドします。 | 1.2 | No |
| Overview | HTMLファイルから概要ドキュメントを読み込みます。 | 1.2 | No |
| Public | publicクラスとメンバのみを表示します。 | all | No |
| Protected | protected/publicクラスとメンバを表示します (デフォルト) | all | No |
| Package | package/protected/publicクラスとメンバを表示します。 | all | No |
| Private | すべてのクラスとメンバを表示します。Show all classes and members | all | No |
| Old | JDK 1.1をエミュレートするdocletを使用して出力を生成します。 | 1.2 | No |
| Verbose | Javadocの動作状況についてのメッセージを出力します。 | 1.2 | No |
| Locale | 使用するロケール。例、en_US や en_US_WIN | 1.2 | No |
| Encoding | ソースファイルエンコーディング名。 | all | No |
| Version | @versionパラグラフを含めます。 | all | No |
| Use | クラスとパッケージの使用方法のページを作成します。 | 1.2 | No |
| Author | @authorパラグラフを含めます。 | all | No |
| Splitindex | 索引を一文字に対して一つのファイルに分割します。 | 1.2 | No |
| Windowtitle | ドキュメントのブラウザのウィンドウの題名。(テキスト) | 1.2 | No |
| Doctitle | パッケージの索引の(最初の)ページに題名を含めます (HTMLコード) | 1.2 | No |
| Header | 各ページにヘッダのテキストを含めます。(HTMLコード) | 1.2 | No |
| Footer | 各ページにフッタのテキストを含めます。(HTMLコード) | 1.2 | No |
| bottom | 各ページの下部にテキストを含めます。(HTMLコード) | 1.2 | No |
| link | 指定されたURLでjavadoc出力にリンクを作成します。 | 1.2 | No |
| linkoffline | <url2>にあるパッケージリストを用いて、<URL>のdocsにリンクを作成します。 | 1.2 | No |
| group | 指定したパッケージを概要ページで一緒にグループ化します。 | 1.2 | No |
| nodeprecated | @deprecated情報を含めません。 | all | No |
| nodeprecatedlist | 推奨されないリストを生成しません。 | 1.2 | No |
| notree | クラス階層を生成しません。 | all | No |
| noindex | 索引を生成しません。 | all | No |
| nohelp | ヘルプのリンクを生成しません。 | 1.2 | No |
| nonavbar | ナビゲーションバーを生成しません。 | 1.2 | No |
| serialwarn | FUTURE: @serialタグについての警告を生成します。 | 1.2 | No |
| helpfile | FUTURE: 使用するHTMLのヘルプファイルを指定します。 | 1.2 | No |
| stylesheetfile | 使用するCSSスタイルシートを指定します。 | 1.2 | No |
| charset | FUTURE: 生成したドキュメントをクロスプラットフォームで閲覧するためのcharset。 | 1.2 | No |
| docencoding | 出力ファイルのエンコーディング名。 | 1.1 | No |
| doclet | ドキュメントを生成するために使用するdocletを起動するクラスファイルを指定します。 | 1.2 | No |
| docletpath | -docletオプションと一緒に指定するdocletクラスファイルへのパスを指定します。 | 1.2 | No |
| docletpathref | 任意の場所で定義されたPATHに対する参照によって、-docletオプションと一緒に指定するdocletクラスファイルへのパスを指定します。 | 1.2 | No |
| additionalparam | javadocコマンドラインに追加するパラメタを追加します。 docletsにとって便利です。 | 1.2 | No |
| failonerror | コマンドが0以外の返り値で終了した場合には、ビルドプロセスを停止します。 | all | No |
javadoc出力に対して、指定したURLでリンクします。 これは、linkとlinkoffline属性と同じ役目を果たします。 どちらかの (または、同時に両方の) 記法を使用できますが、 ネストした要素の方が、簡単に複数の引数を指定することができます。
| 属性 | 説明 | 必須 |
| href | リンクしたい外部のドキュメントのURL。 | Yes |
| offline | ドキュメント生成時に、このリンクがオンラインで利用できない場合にtrueを指定します。 | No |
| packagelistLoc | 外部のドキュメントのパッケージリストファイルを含むディレクトリの場所。 | オフライン属性がtrueの場合のみ。 |
概要ページのそれぞれのパッケージを、あなたが指定したグループに、一グループが一つのテーブルになるように分割します。 これは、group属性と同じ役目を果たします。 どちらかの記法(または同時に両方)を使用することができますが、ネストした要素の方が複数の引数を簡単に指定することができます。
| 属性 | 説明 | 必須 |
| title | このグループの題名。 | Yes |
| packages | このグループに含まれるパッケージのリスト。 |