目次へ

2. ビルドファイルの構成

この章ではビルドファイルの主な構成要素であるプロジェクト、ターゲット、タスクについて説明します。

2.1. プロジェクト(Project)

プロジェクトはビルドに関する情報をすべて記述するファイルです。ビルドファイルには必ずひとつだけプロジェクトを定義をしなければいけません。

プロジェクト要素には3つの属性があります。

属性名 説明 必須
name

プロジェクトの名前。

 
default

デフォルトターゲット名。Antの起動時にターゲット名を明示しなかったときに実行されるターゲットを指定します。(Ant1.5以降では必須でなくなりました。省略時は"main"ターゲットが実行されます。)


(ant1.4以前)

basedir ビルド処理を行うベースディレクトリ。絶対パス、もしくはこのビルドファイルの存在するディレクトリからの相対パスで指定します。省略時はこのビルドファイルの存在するディレクトリがベースディレクトリとなります。
 

以下に簡単なプロジェクト定義の例を示します。

<project name="sample_project" default="compile" basedir=".">

  <property name="srcdir" value="./src">

 <target name="compile">
    <!-- ここにコンパイルを実行するタスクを記述 -->
  </target>

  <target name="install" depends="compile">
    <!-- ここにインストールを実行するタスクを記述-->
  </target>

</project>

1行目のプロジェクト開始タグにおいてこのプロジェクトは、

  • プロジェクト名が'sample_project'
  • デフォルトターゲットが'compile'
  • タスクを実行するベースディレクトリがこのビルドファイルの存在するディレクトリ

であることを定義しています。したがってこのビルドファイルをターゲット指定無しで実行すると、compileターゲットが実行されることになります。もしinstallターゲットを実行したければ、次のようににコマンドライン引数でターゲット名を指定します。

$ ant install

2行目ではプロパティタスクを利用してプロパティの定義が行われています。プロパティとはプロジェクト内で利用することのできる変数のようなものです。プロパティは名前と値を持っており、ここでは"./src"という値を持つ"srcdir"というプロパティが設定されています。このプロジェクト内では、${srcdir}という記述が./srcに置き換えられます。

プロパティは、この例のようにPropertyタスクを利用したり、Antのコマンドライン引数で指定することによって設定することができます。コマンドライン引数でプロパティを設定するには-Dオプションを用います。上記のsrcdirというプロパティをコマンドラインで指定するには次のようにします。

$ ant -Dsrcdir=./src

コマンドラインで指定したプロパティは、Propertyタスクの指定より優先されます。

Antにはいくつかのプロパティが組み込みこまれており、明示的に定義することなく利用することができます。利用可能な組み込みプロパティには以下のものがあります。

プロパティ名 プロパティ値
basedir project要素のbasedir属性で設定されているベースディレクトリの絶対パス
ant.file ビルドファイルの絶対パス
ant.version Antのバージョン
ant.project.name 現在実行しているプロジェクトの名前
ant.java.version Java仮想マシンのバージョン

また、Javaのjava.lang.System.getProperty()メソッドで取得できるプロパティもすべて組み込みプロパティとして利用することができます。たとえば${os.name}で実行されるマシンのオペレーティングシステム名を取得することができます。

それではechoタスクを利用して実際にプロパティの値を表示してみましょう。echoタスクはmessage属性に記述した文字列を表示する機能を持っています。

$ cat build.xml 

<project name="sample" default="showOS" basedir=".">

  <target name="showOS">
    <echo message="OS = ${os.name}"/>
  </target>

</project>

$ ant
Buildfile: build.xml

showOS:
     [echo] OS = Linux

BUILD SUCCESSFUL

Total time: 1 second

ちゃんとオペレーティングシステム名が出てきましたね。この例はLinux上で実行したので"OS = Linux"という表示が出力されています。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp