Antタグ解説

●ビルド・ファイルの中身
一番外側にルート要素として、project要素があります(プロジェクト)。
プロジェクトは1つ以上のtarget要素(ターゲット)を持ちます。
 そしてターゲットは複数のタスクを持っています。「タスク」とは、Antに処理してほしい具体的な仕事を表します。
 その複数のタスクのまとまりがターゲットです。
 このほかに、property要素(プロパティ)を設定することができます。
 Javaでいえば、クラスの定数の設定にあたります。
 ここで設定された定数はプロジェクト中で再利用することができます。

さきほどの例では"helloWorld"という名前のターゲットが、<echo>という「文字列を出力するタスク」を持っていました。
 このほかにもAntには「javacコマンド」や「ディレクトリの作成」、「文字列の置換」など、コア・タスクとよばれるさまざまなタスクが多数用意されています。

●タスク
タスクとは、Antが実際に実行する「仕事」の最小単位です。
 Antには「コア・タスク」とよばれるものが多数用意されており、
 「コンパイル」や、「ディレクトリ作成」、「jarコマンド」、「文字列の変換」などのタスクがあります。

<Echoタスクのおもな属性>
属性				説明										必須
message				出力するメッセージ							YES
file				メッセージを書き込むファイル				NO
append				すでに存在するファイルに追加するかどうか	NO (デフォルトはfalse)


<おもなコア・タスク>
コア・タスク		詳細
Ant				新しく Ant のプロジェクトを開始します。
Cvs				CVSリポジトリに対して様々な処理を行います。
Delete			指定したファイルを削除します。
Echo			メッセージを出力します。
Exec			指定されたコマンドを実行します。
Fail 			現在実行中のビルドを中止します。
Get 			URLで指定した場所のファイルを取得します。
GZip 			指定されたファイルを GZIP 形式で圧縮します。
Jar 			JAR ファイルを新規作成及び既存のファイルを更新します。
Java 			Java アプリケーションを実行します。
Javac 			ソースツリーをコンパイルします。
Mkdir 			ディレクトリを作成します。
Sleep 			指定した時間、処理を停止します。
Unzip 			ZIP 形式のファイルを展開します。
War 			WAR ファイルを新規作成及び既存のファイルを更新します。
Zip 			ZIP ファイルを新規作成及び既存のファイルを更新します。

●ターゲット
 ターゲットとは、一連の仕事(タスク)をまとめたもので、プロジェクト内に複数記述することができます。
 ターゲット要素は次のような属性を持ちます。

<ターゲットの属性>
属性名 説明 必須
name ターゲットに名前をつけます。 YES
depends 依存するターゲットを表します。 NO
description ターゲットの説明を記述できます。 NO


●プロジェクト

<project>タグで表す、ビルド・ファイルのルート要素です。この中にターゲットを1つ以上記述します。プロジェクトは次のような属性を持っています。

<プロジェクトの属性>
属性名 説明 必須
name プロジェクトに名前をつけます。 NO
default ターゲットが指定されない場合のデフォルトターゲットを指定します。 YES
basedir パスの処理を行うベースディレクトリを表します。 NO
			デフォルトはビルド・ファイルのあるディレクトリを表します。

●antコマンド

 antコマンドは引数を何も与えずにそのまま実行すると、
 カレントディレクトリにある"build.xml"という名前のビルド・ファイルを探して実行します。
 特定のビルド・ファイルを指定してantコマンドを実行するには、-fオプションを使います。

 またantコマンドは、引数に特定のターゲットを指定して実行することができます。
 なにも指定しなければ、project要素のdefault属性に記述されたターゲットを実行します。

antコマンドの構文
ant -f ビルド・ファイル名 実行するターゲット名

(例)/tmpディレクトリにある、"hello.xml"というビルド・ファイルの"compile"というターゲットを実行するには

ant -f /tmp/hello.xml compile

と入力し実行します。

●Antでのコンパイル例
compile.xml
<?xml version="1.0" encoding="Shift_JIS"?>
<project default="compile" basedir="C:\example">

<property name="source" value="src"/>
<property name="dest" value="classes"/>

<target name="mkdir" description="ディレクトリを作成">
	<mkdir dir="${dest}"/>
</target>

<target name="compile" depends="mkdir" description ="コンパイルを実行">
	<javac srcdir="${source}" destdir="${dest}"/>
</target>

</project>

実行結果
C:\>ant -f c:\example\compile.xml
Buildfile: c:\example\compile.xml

mkdir:
    [mkdir] Created dir: C:\example\classes                ← ディレクトリ作成

compile:
    [javac] Compiling 1 source file to C:\example\classes  ← コンパイルしてclassesへ配置

BUILD SUCCESSFUL
Total time: 3 seconds


ターゲットcompileはjavacタスクを持っています。
これはソースツリーをコンパイルするためのコア・タスクです。
コンパイルもとのディレクトリを再帰的にコンパイルします。
Javaファイルは、対応する.classファイルが存在しないか、
.javaファイルよりもクラスファイルが古い場合にのみ、コンパイルされます。

 javacタスクはおもに以下のような属性を持ちます。

<Javacタスクのおもな属性>
属性 説明 必須
srcdir Javaファイルの場所を指定します。 YES
destdir classファイルの保存先を指定します。 NO
classpath 使用するクラスパスを指定します。 NO

 Mkdirタスク、Javacタスクともに属性の値となるディレクトリの値を、${source}、${dest}という定数で表しています。
 これらは4-5行目のプロパティで定義されています。ここでは、値となるディレクトリは相対パスで指定されています。
 2行目project要素のbasedir属性に絶対パスが指定してあるため、
 このプロジェクト内で相対パスで記述されたものは、すべてこのbasedir属性の値からの相対パスとしてみなされます。
最終更新:2007年01月26日 18:23
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。