Ant

説明

与えられたビルドファイルに対し Ant を実行します。 これはサブプロジェクトをビルドするのに使われます。 このタスクは、同じビルドファイルの一部として実行する場合、 targetの外側で使用してはいけません。

antfile 属性が省略された場合、 与えられたディレクトリ(dir 属性)にある ファイル"build.xml" が使われます。

target 属性が与えられなかった場合、 新しいプロジェクトのデフォルトターゲットが使われます。

デフォルトでは、 カレントプロジェクトの全てのプロパティが新しいプロジェクトで利用可能になります。 代わりに、 inheritAll属性をfalse に設定して、 "user"プロパティ(つまり、コマンドラインで渡されるもの)のみを 新しいプロジェクトに渡すこともできます。 どちらの場合でも、 新しいプロジェクトに渡されるプロパティの集合は、 新しいプロジェクトで設定されるプロパティで上書きされます。 (property タスクもご覧ください)

ネストされた property タグを使って、 古いプロジェクトから、 新しいプロジェクトにプロパティを設定することもできます。 inheritAllの設定に関らず、 これらのプロパティは、新しいプロジェクトやプロジェクト内で作成されるどんなプロジェクトへも 常に渡されます。 これにより、自分のサブプロジェクトをパラメータ化できます。 コマンドライン上で定義されたプロパティーは、ネストした <property> 要素で 上書きすることができません。

データ型の参照も新しいプロジェクトに渡すことができますが、 デフォルトではできません。 inheritrefs 属性を true に設定した場合、 全ての参照はコピーされます。 しかしながら、新しいプロジェクトで定義された参照を上書きすることはありません。

ネストされた <reference> 要素もまた、 呼び出し側のプロジェクトから、新しいプロジェクトへ、 参照をコピーするのに使われます。 オプションとして別の ID でコピーすることもできます。 ネストされた要素から得られた参照は、 新しいプロジェクト中のターゲットの外側で定義された 既存の参照を上書きします。 しかしながら、ターゲットの内側で定義されたものは、上書きしません。

パラメータ

属性 説明 必須
antfile 使用されるビルドファイル。 デフォルトは "build.xml"。 このファイルは与えられた dir 属性からの相対ファイル名だと想定されます。 No
dir 新しい Ant プロジェクトのベースディレクトリとして使うためのディレクトリ。 inheritall が false に設定されなければ、 デフォルトはカレントプロジェクトのベースディレクトリとなります。 設定された場合、デフォルト値はありません。 これは、呼び出されたプロジェクトのベースディレクトリ設定を上書きします。 No
target 実行される新しい Ant プロジェクトのターゲット。 デフォルトは、新しいプロジェクトのデフォルトターゲット No
output Ant の出力を書き出すファイル名。 これは、dir属性が設定されていればその値からの相対となり、 設定されていなければ、カレントプロジェクトのベースディレクトリ からの相対となります。 No
inheritAll trueの場合、 全てのプロパティが新しい Ant プロジェクトに渡されます。 デフォルトはtrue No
inheritRefs trueの場合、 全ての参照が新しい Ant プロジェクトに渡されます。 デフォルトはfalse No

ネストされる要素として指定されるパラメータ

property

propertyタスクの説明をご覧ください。 refid属性は、新しいプロジェクト内ではなく、 呼び出し側のプロジェクト内の参照を指すことに注意してください。

reference

新しいプロジェクトにコピーされる参照を選択するのに使われます。 オプションとして、idを変更することができます。

属性 説明 必須
refid 呼び出し側のプロジェクト内での参照のID Yes
torefid 新しいプロジェクト内での参照のID No、デフォルトは refid の値

propertyset

新しいプロジェクトへコピーするプロパティーセットを指定するのに、 複数のpropertysetを利用できます。

Ant 1.6 より.

新しいプロジェクトのベースディレクトリ

新しいプロジェクトのbasedir の値は、 dir と inheritall の 2 つの属性に影響されます。 詳しくは次の表をご覧ください:

dir 属性 inheritAll 属性 新しいプロジェクトの basedir
値を指定 true dir 属性の値
値を指定 false dir 属性の値
省略 true 呼び出し側プロジェクトの basedir (ビルドファイルに<ant>タスクがあるもの)
省略 false 新しいプロジェクトの<project> 要素の basedir 属性

  <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>

  <ant inheritAll="false" antfile="subproject/subbuild.xml">
    <property name="output.type" value="html"/>
  </ant>

呼び出し側プロジェクトのビルドファイルは、 いくつかの<path>要素を次のように定義します:

  <path id="path1">
    ...
  </path>
  <path id="path2">
    ...
  </path>

そして、呼び出されたビルドファイル(subbuild.xml)もまた、 ID path1 をつけて <path> を定義します。 しかし、path2は定義されません:

  <ant antfile="subbuild.xml" inheritrefs="true"/>

これはsubbuildpath1の定義を上書きしませんが、 subbuild において、親のpath2の定義が利用可能です。

  <ant antfile="subbuild.xml"/>

同様に

  <ant antfile="subbuild.xml" inheritrefs="false"/>

では、path1 を上書きせず、 path2 をコピーもしません。

  <ant antfile="subbuild.xml" inheritrefs="false">
    <reference refid="path1"/>
  </ant>

これはsubbuildpath1の定義を上書きします。

  <ant antfile="subbuild.xml" inheritrefs="false">
    <reference refid="path1" torefid="path2"/>
  </ant>

これは親のpath1の定義を、 ID path2を用いて新しいプロジェクトにコピーします。


Copyright © 2000-2004 The Apache Software Foundation. All rights Reserved.

[訳注:これは漆島賢二、宮本信二が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]