●ビルド・ファイルの中身
一番外側にルート要素として、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