Using Ant

Antを使う

Writing a Simple Buildfile

簡単なビルドファイルを記述する

Ant's buildfiles are written in XML. Each buildfile contains one project and at least one (default) target. Targets contain task elements. Each task element of the buildfile can have an id attribute and can later be referred to by the value supplied to this. The value has to be unique. (For additional information, see the Tasks section below.)

Antのビルドファイルは、XMLで記述します。 各ビルドファイルは、一つのプロジェクトと、一つ以上の(デフォルトの)ターゲットを含んでいます。 各ターゲットにはtask要素があります。 ビルドファイルのそれぞれのTask要素は、 あとからその値を使って参照するためのid属性を持つことができます。 この値は一意でなくてはいけません(後述するTaskの節に追加情報があります)。

Projects

プロジェクト

A project has three attributes:

プロジェクト(project)には、次の3つの属性があります:

Attribute Description Required
name the name of the project. No
default the default target to use when no target is supplied. Yes.
basedir the base directory from which all path calculations are done. This attribute might be overridden by setting the "basedir" property beforehand. When this is done, it must be omitted in the project tag. If neither the attribute nor the property have been set, the parent directory of the buildfile will be used. No
属性 説明 必須
name projectの名前。 いいえ
default ターゲットが指定されない時に使用するデフォルトターゲット。 はい
basedir パスの計算を行う場合に必ず用いるベースディレクトリ。 この属性は、前もって"basedir"プロパティを設定することでオーバーライドすることができます。 このとき、プロジェクトタグに設定したものは無視されます。 どちらも指定されていない場合は、ビルドファイルの親ディレクトリが使われます。 いいえ

Optionally, a description for the project can be provided as a top-level <description> element (see the description type).

必要に応じて、トップレベルの<description>要素に、プロジェクトの説明を記述することができます ( description タイプを見て下さい)。

Each project defines one or more targets. A target is a set of tasks you want to be executed. When starting Ant, you can select which target(s) you want to have executed. When no target is given, the project's default is used.

各プロジェクトには、一つ以上のターゲットを定義します。 一つのターゲットは、実行したいタスクの集合です。 Antを起動した時に、どのターゲットを実行したいかを選択することができます。 ターゲットを指定しない場合には、そのプロジェクトのデフォルトが使用されます。

Targets

ターゲット

A target can depend on other targets. You might have a target for compiling, for example, and a target for creating a distributable. You can only build a distributable when you have compiled first, so the distribute target depends on the compile target. Ant resolves these dependencies.

ターゲット(target)は、他の複数のターゲットに依存することができます。 例えば、コンパイルするターゲットと、配布物を作成するターゲットの二つがある場合を考えてみましょう。 すでにコンパイル済みであれば、配布物を作成するターゲットだけを実行すればよいといえます。 つまり、配布物ターゲットはコンパイルターゲットに依存しているといえます。 Antは、これらの依存性を解決します。

It should be noted, however, that Ant's depends attribute only specifies the order in which targets should be executed - it does not affect whether the target that specifies the dependency(s) gets executed if the dependent target(s) did not (need to) run.

ただし、 Antのdepends属性はどのターゲットが実行されるべきかの順序を指定するだけです ―― もし、あるターゲットが実行されない(実行の必要がない)のなら、 これに依存している別のターゲットが実行されるかどうかには影響を及ぼしせん。

Ant tries to execute the targets in the depends attribute in the order they appear (from left to right). Keep in mind that it is possible that a target can get executed earlier when an earlier target depends on it:

Antは、depends属性のターゲットを、出現順(左から右)に実行しようとします。 ただし、実行しようとしているターゲットが他に依存している場合は、被依存ターゲットを先に実行します:

<target name="A"/>
<target name="B" depends="A"/>
<target name="C" depends="B"/>
<target name="D" depends="C,B,A"/>

Suppose we want to execute target D. From its depends attribute, you might think that first target C, then B and then A is executed. Wrong! C depends on B, and B depends on A, so first A is executed, then B, then C, and finally D.

ターゲットDを実行したいという場面を考えてみましょう。 このdepends属性からは、一見、ターゲットC、B、Aの順に実行するように見えます。 違います ―― CはBに依存し、BはAに依存しているので、最初にA、次にB、C、最後にDを実行します。

A target gets executed only once, even when more than one target depends on it (see the previous example).

複数のターゲットが依存しているようなターゲットでも、実行されるのは一回だけです(前述の例を参照)。

A target also has the ability to perform its execution if (or unless) a property has been set. This allows, for example, better control on the building process depending on the state of the system (java version, OS, command-line property defines, etc.). To make a target sense this property, you should add the if (or unless) attribute with the name of the property that the target should react to. Note: Ant will only check whether the property has been set, the value doesn't matter. A property set to the empty string is still an existing property. For example:

あるプロパティが設定されている(またはされていない)場合に、ターゲットを実行するように設定できます。 これを使うと、たとえば、システムの状態(Javaのバージョン、OS、コマンドラインプロパティなど)に従って、ビルドプロセスをより細かく指定できるようになります。 このプロパティを検出するためには、ターゲットが反応すべきプロパティの if (またはunless)属性を追加します。 注: Antはプロパティの値は調べず、単にセットされているかどうかだけをチェックします。 空文字列が設定されている場合、プロパティはセットされているものとみなされます。 例えば:

<target name="build-module-A" if="module-A-present"/>
<target name="build-own-fake-module-A" unless="module-A-present"/>

In the first example, if the module-A-present property is set (to any value), the target will be run. In the second example, if the module-A-present property is set (again, to any value), the target will not be run.

一つ目の例では、もしmodule-A-presentプロパティが(任意の値に)設定されている場合、ターゲットが実行されます。 二つ目の例では、もしmodule-A-presentプロパティが(やはり、任意の値に)設定されている場合には、ターゲットは実行されません。

If no if and no unless attribute is present, the target will always be executed.

ifおよびunless属性が存在しない場合、ターゲットは常に実行されます。

The optional description attribute can be used to provide a one-line description of this target, which is printed by the -projecthelp command-line option. Targets without such a description are deemed internal and will not be listed, unless either the -verbose or -debug option is used.

オプションのdescription属性は、ターゲットについての簡単な説明を用意するために使うことができます。 この説明は、-projecthelpコマンドラインオプションを実行したときに表示されます。 このような説明がないターゲットは内部ターゲットとみなされ、-verbose または-debugオプションが指定された場合を除き、表示されません。

It is a good practice to place your tstamp tasks in a so-called initialization target, on which all other targets depend. Make sure that target is always the first one in the depends list of the other targets. In this manual, most initialization targets have the name "init".

すべての他のターゲットが依存している、いわゆる初期化ターゲットの中に tstampタスクを配置するのは、良い練習となります。 そのターゲットが他のターゲットの依存リストの中で常に最初であることを確認してください。 このマニュアルでは、初期化ターゲットはほとんどの場合 "init"という名前になっています。

If the depends attribute and the if/unless attribute are set, the depends attribute is executed first.

depends属性と if/unless属性の両方が指定されている場合、 まずdepends属性に指定されたターゲットが実行されます。

A target has the following attributes:

ターゲットには以下の属性を指定できます:

Attribute Description Required
name the name of the target. Yes
depends a comma-separated list of names of targets on which this target depends. No
if the name of the property that must be set in order for this target to execute. No
unless the name of the property that must not be set in order for this target to execute. No
description a short description of this target's function. No
属性 説明 必須
name ターゲットの名前。 はい
depends このターゲットが依存するターゲット名のリスト(カンマ区切り)。 いいえ
if このターゲットを実行するために設定されていなければならないプロパティ名。 いいえ
unless このターゲットを実行するために設定されていてはならないプロパティ名。 いいえ
description このターゲットの機能の簡単な説明。 いいえ

A target name can be any alphanumeric string valid in the encoding of the XML file. The empty string "" is in this set, as is comma "," and space " ". Please avoid using these, as they will not be supported in future Ant versions because of all the confusion they cause. IDE support of unusual target names, or any target name containing spaces, varies with the IDE.

ターゲット名には、そのXMLファイルのエンコーディングに沿った、英数字からなる文字列をつけられます。 カンマ ","やスペース" "、から文字列""も含まれますが、 Antの将来のバージョンでサポートされなくなることがあるので避けてください。 IDE(統合開発環境)が空白やカンマを含むターゲット名をサポートするかどうかは、IDEの実装に依存します。

Targets beginning with a hyphen such as "-restart" are valid, and can be used to name targets that should not be called directly from the command line.

"-restart"といったような、ハイフンで始まるターゲットも使うことができます。 コマンドラインから直接実行されたくないターゲットの名前として使うことができます。

Tasks

タスク

A task is a piece of code that can be executed.

タスクとは、実行可能なコードのひとまとまりです。

A task can have multiple attributes (or arguments, if you prefer). The value of an attribute might contain references to a property. These references will be resolved before the task is executed.

タスクには、いくつかの属性(または引数)があります。 属性の値として、プロパティの参照を指定できます。これらの参照は、タスクが実行される前に展開されます。

Tasks have a common structure:

タスクは、次のような共通の構造になっています:

<name attribute1="value1" attribute2="value2" ... />
<名前 属性1="値1" 属性2="値2" ... />

where name is the name of the task, attributeN is the attribute name, and valueN is the value for this attribute.

ここで、名前はタスク名、属性Nは属性名、値Nはその属性の値です。

There is a set of built-in tasks, along with a number of optional tasks, but it is also very easy to write your own.

いろいろなコアタスク、 たくさんのオプションタスクがありますが、 独自のタスクを記述するのも、とても簡単です。

All tasks share a task name attribute. The value of this attribute will be used in the logging messages generated by Ant.

すべてのタスクは、task name属性を共有しています。 この属性の値は、Antが生成するロギングメッセージで使用されます。

Tasks can be assigned an id attribute:

タスクにはid属性を設定できます:

<taskname id="taskID" ... />

where taskname is the name of the task, and taskID is a unique identifier for this task. You can refer to the corresponding task object in scripts or other tasks via this name. For example, in scripts you could do:

ここで、tasknameはタスク名、taskIDは、このタスクのユニークな識別子です。 この名前を用いて、他のタスクやスクリプトから、このタスクオブジェクトを参照できます。 例えば、スクリプトの中から:

<script ... >
  task1.setFoo("bar");
</script>

to set the foo attribute of this particular task instance. In another task (written in Java), you can access the instance via project.getReference("task1").

とすることにより、そのタスクインスタンスのfoo属性を設定することができます。 別の(Javaで書かれた)タスクからは、project.getReference("task1")のようにして、このインスタンスにアクセス出来ます。

Note1: If "task1" has not been run yet, then it has not been configured (ie., no attributes have been set), and if it is going to be configured later, anything you've done to the instance may be overwritten.

1: "task1"自体は実行されるまで構成されません(つまり、属性は設定されません)。 これより後、タスクが構成される時点で、ここでの設定は上書きされます。

Note2: Future versions of Ant will most likely not be backward-compatible with this behaviour, since there will likely be no task instances at all, only proxies.

2: 将来のバージョンのAntでは、 タスクインスタンスはなくなり、すべてProxy(代理)となるため、 この挙動に対して下位互換性をもたなくなるでしょう。

Properties

プロパティ

A project can have a set of properties. These might be set in the buildfile by the property task, or might be set outside Ant. A property has a name and a value; the name is case-sensitive. Properties may be used in the value of task attributes. This is done by placing the property name between "${" and "}" in the attribute value. For example, if there is a "builddir" property with the value "build", then this could be used in an attribute like this: ${builddir}/classes. This is resolved at run-time as build/classes.

プロジェクトには、複数のプロパティを設定することができます。 プロパティは、ビルドファイル中で propertyタスクで設定、 またはAntの外で設定できます。 プロパティは名前と値からなり、タスクの中において、属性の値を設定する場所に "${" と "}" で挟んでプロパティ名を書くことにより、 属性の値として使用することができます。プロパティ名は 大文字・小文字を区別します。

Built-in Properties

組み込みプロパティ

Ant provides access to all system properties as if they had been defined using a <property> task. For example, ${os.name} expands to the name of the operating system.

すべてのシステムプロパティは、<property>タスクで定義した場合と同様の方法で参照できます。 たとえば、${os.name}は、オペレーティングシステム名に展開されます。

For a list of system properties see the Javadoc of System.getProperties.

システムプロパティの一覧については、 System.getPropertiesのJavadocを見て下さい。

In addition, Ant has some built-in properties:

ほかにもいくつか組み込みプロパティがあります:

basedir             the absolute path of the project's basedir (as set
                    with the basedir attribute of <project>).
ant.file            the absolute path of the buildfile.
ant.version         the version of Ant
ant.project.name    the name of the project that is currently executing;
                    it is set in the name attribute of <project>.
ant.java.version    the JVM version Ant detected; currently it can hold
                    the values "1.1", "1.2", "1.3" and "1.4".
basedir            (<project>のbasedir属性として設定される)
                   プロジェクトのベースディレクトリの絶対パス。
ant.file           ビルドファイルの絶対パス。
ant.version        Antのバージョン
ant.project.name   現在実行しているプロジェクトの名前;
                   <project>のname属性に設定されているもの。
ant.java.version   Antが検出したJVMのバージョン。現在は、
                   "1.1"、"1.2"、"1.3"、"1.4" をとり得る。

Example Buildfile

ビルドファイルの例

<project name="MyProject" default="dist" basedir=".">
    <description>
        simple example build file
    </description>
  <!-- set global properties for this build -->
  <property name="src" location="src"/>
  <property name="build" location="build"/>
  <property name="dist"  location="dist"/>

  <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${build}"/>
  </target>

  <target name="compile" depends="init"
        description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
  </target>

  <target name="dist" depends="compile"
        description="generate the distribution" >
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}/lib"/>

    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
  </target>

  <target name="clean"
        description="clean up" >
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>
</project>
<?xml version="1.0" encoding="Shift_JIS" ?>
<project name="MyProject" default="dist" basedir=".">
    <description>
        簡単なビルドファイルの例
    </description>
  <!-- このビルド用のグローバルプロパティを設定する -->
  <property name="src" location="src"/>
  <property name="build" location="build"/>
  <property name="dist"  location="dist"/>

  <target name="init">
    <!-- タイムスタンプを作成する -->
    <tstamp/>
    <!-- コンパイルで使用するビルドディレクトリ構造を作成する -->
    <mkdir dir="${build}"/>
  </target>

  <target name="compile" depends="init"
        description="ソースをコンパイルする" >
    <!-- ${src}から${build}に、Javaコードをコンパイルする -->
    <javac srcdir="${src}" destdir="${build}"/>
  </target>

  <target name="dist" depends="compile"
        description="配布物を生成する" >
    <!-- distributionディレクトリを作成する -->
    <mkdir dir="${dist}/lib"/>

    <!-- ${build}の中のすべてのファイルをMyProject-${DSTAMP}.jarファイルに格納する -->
    <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
  </target>

  <target name="clean"
        description="クリーンアップ" >
        <!-- ${build}と${dist}ディレクトリツリーを削除する -->

    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>
</project>

[訳注: ビルドファイル中に日本語を入力するには、ファイルの最初に
<?xml version="1.0" encoding="Shift_JIS"?>
のように使用する文字コードを指定する必要があります。
そうしないと、デフォルトの UTF-8 コードであるとみなされ、

BUILD FAILED
Error reading project file: invalid byte 1 of 1-byte UTF-8 sequence (0xb4)
のようなエラーメッセージが表示されることがあります。]

Notice that we are declaring properties outside any target. As of Ant 1.6 all tasks can be declared outside targets (earlier version only allowed <property>,<typedef> and <taskdef>). When you do this they are evaluated before any targets are executed. Some tasks will generate build failures if they are used outside of targets as they may cause infinite loops otherwise (<antcall> for example).

プロパティは全てターゲットの外側で宣言されている点に注意してください。
Ant 1.6 では、全てのタスクはターゲットの外側で宣言できるようになりました (以前のバージョンでは<property><typedef><taskdef> だけでこれが可能でした)。 これらのプロパティは、全てのターゲットを実行する前に評価されます。 いくつかのタスクは、これらがターゲット外部から参照されると無限ループを引き起こすような場合に、 ビルドを失敗させます(たとえば<antcall>)。

We have given some targets descriptions; this causes the projecthelp invocation option to list them as public targets with the descriptions; the other target is internal and not listed.

いくつかのターゲットには説明(description)がついています。 これらは公開ターゲットとみなされ、projecthelp実行時オプションで一覧表示されます。 それ以外のターゲットは内部ターゲットであり、一覧には現れません。

Finally, for this target to work the source in the src subdirectory should be stored in a directory tree which matches the package names. Check the <javac> task for details.

なお、このターゲットを動作させるためには、各ソースはsrcサブディレクトリツリー内で、 パッケージ名に一致するように格納されている必要があります。 詳細は<javac>タスクを参照してください。

Token Filters

トークンフィルタ

A project can have a set of tokens that might be automatically expanded if found when a file is copied, when the filtering-copy behavior is selected in the tasks that support this. These might be set in the buildfile by the filter task.

filterタスクを使うと、ファイルのコピーを行う際、 条件に合うファイルの中のトークンを展開することができます。

Since this can potentially be a very harmful behavior, the tokens in the files must be of the form @token@, where token is the token name that is set in the <filter> task. This token syntax matches the syntax of other build systems that perform such filtering and remains sufficiently orthogonal to most programming and scripting languages, as well as with documentation systems.

この機能は影響が非常に大きいので、 ファイル中のトークンは@token@という形式で記述する必要があります。 ここで tokenは、filterタスクで設定されたトークン名です。

トークンの文法は、同様のフィルタリングを行う他のビルドシステムの文法と一致しています。 また、大部分のプログラミング言語やスクリプト言語、ドキュメンテーションシステムからは独立しています。

Note: If a token with the format @token@ is found in a file, but no filter is associated with that token, no changes take place; therefore, no escaping method is available - but as long as you choose appropriate names for your tokens, this should not cause problems.

注意: @token@ という形式のトークンがファイル中に見つかっても、 そのトークンに関連づけられたフィルタがない場合には、何も変更されません。 トークンをエスケープする方法はありませんが、適切なトークン名をつけていれば問題になることはありません。

Warning: If you copy binary files with filtering turned on, you can corrupt the files. This feature should be used with text files only.

警告: フィルタリングが有効な状態でバイナリファイルをコピーするとファイルが壊れます。 この機能はテキストファイルに対してだけ使うべきです。

Path-like Structures

PATHに類する構造

You can specify PATH- and CLASSPATH-type references using both ":" and ";" as separator characters. Ant will convert the separator to the correct character of the current operating system.

パスやクラスパスのような変数を指定する場合、":"および";"を区切り文字として使用できます。 AntはOSに応じて適切に解釈します。

PATHに類する値を指定する際は、ネストした要素を使用することができます。一般形は以下のようになります:

    <classpath>
      <pathelement path="${classpath}"/>
      <pathelement location="lib/helper.jar"/>
    </classpath>

The location attribute specifies a single file or directory relative to the project's base directory (or an absolute filename), while the path attribute accepts colon- or semicolon-separated lists of locations. The path attribute is intended to be used with predefined paths - in any other case, multiple elements with location attributes should be preferred.

ここで、location属性は、プロジェクトのベースディレクトリを基準とした相対パス(または絶対パス)により、 ファイルやディレクトリを指定しています。 それに対し、path属性には、コロンやセミコロンで区切られた位置のリストを記述することができます。 path属性は、定義済みパスと一緒に使われることを意図しています - そうでない場合は、location属性を使ってください。

As a shortcut, the <classpath> tag supports path and location attributes of its own, so:

<classpath>要素には path属性と location属性を記述できるので、 簡単な方法として、

    <classpath>
      <pathelement path="${classpath}"/>
    </classpath>

can be abbreviated to:

は、以下のように省略して書くこともできます:

    <classpath path="${classpath}"/>

In addition, DirSets, FileSets, and FileLists can be specified via nested <dirset>, <fileset>, and <filelist> elements, respectively. Note: The order in which the files building up a FileSet are added to the path-like structure is not defined.

また、DirSetFileSetFileListには、 ネストした <dirset><fileset><filelist>要素を指定することができます。 : FileSetで指定したファイルがこれらPATH構造に追加される順番は不定です。

    <classpath>
      <pathelement path="${classpath}"/>
      <fileset dir="lib">
        <include name="**/*.jar"/>
      </fileset>
      <pathelement location="classes"/>
      <dirset dir="${build.dir}">
        <include name="apps/**/classes"/>
        <exclude name="apps/**/*Test*"/>
      </dirset>
      <filelist refid="third-party_jars"/>
    </classpath>

This builds a path that holds the value of ${classpath}, followed by all jar files in the lib directory, the classes directory, all directories named classes under the apps subdirectory of ${build.dir}, except those that have the text Test in their name, and the files specified in the referenced FileList.

上記の例では、 libディレクトリ以下のすべてのJARファイル、 classesディレクトリ、 ${build.dir}appsサブディレクトリ内のclassesという名前の全てのディレクトリ ${classpath}の値の後に追加したPATHを構築します。 但し、名前にTestを含む場合と、 FileListで指定されたファイルを除きます。PENDING あってるか確認すること

If you want to use the same path-like structure for several tasks, you can define them with a <path> element at the same level as targets, and reference them via their id attribute - see References for an example.

あるPATH類似構造を複数のタスクで使用したい場合には、 <path>要素をターゲットと同じレベルで定義し、 そのidを指定して参照するようにします。 ―― 参照 に例があります。

A path-like structure can include a reference to another path-like structure via nested <path> elements:

ネストした<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>

The shortcuts previously mentioned for <classpath> are also valid for <path>.For example:

<path>でも、省略した書き方が用意されています。例えば:

    <path id="base.path">
      <pathelement path="${classpath}"/>
    </path>

can be written as:

は、以下のように省略して書くことができます:

    <path id="base.path" path="${classpath}"/>

Command-line Arguments

コマンドライン引数

Several tasks take arguments that will be passed to another process on the command line. To make it easier to specify arguments that contain space characters, nested arg elements can be used.

タスクによっては、コマンドラインで指定する引数を受け取って動作します。 空白文字を含む引数指定を簡単にするために、ネストしたarg要素を使用して指定することもできます。

Attribute Description Required
value a single command-line argument; can contain space characters. Exactly one of these.
file The name of a file as a single command-line argument; will be replaced with the absolute filename of the file.
path A string that will be treated as a path-like string as a single command-line argument; you can use ; or : as path separators and Ant will convert it to the platform's local conventions.
pathref Reference to a path defined elsewhere. Ant will convert it to the platform's local conventions.
line a space-delimited list of command-line arguments.
属性 説明 必須
value 単一のコマンドライン引数。空白文字を含むことができる。 いずれかひとつ。
file 単一のコマンドライン引数としてのファイル名。 絶対パスを含むように置換される。
path 単一のコマンドライン引数として扱われるパス文字列。 区切り文字には ;: のどちらを用いてもよい。Antが適切に変換する。
pathref 別の箇所で定義されたパスの参照。 Antが適切に変換する。
line コマンドライン引数。空白を含むことができる。

It is highly recommended to avoid the line version when possible. Ant will try to split the command line in a way similar to what a (Unix) shell would do, but may create something that is very different from what you expect under some circumstances.

lineを用いるのはできるだけ避けてください。 Antは(Unixの)シェルが行うのと同じようにコマンドラインを分割しようとしますが、 ある状況においては期待とは大きく異なる結果になります。

Examples

  <arg value="-l -a"/>

is a single command-line argument containing a space character.

は、空白文字を含む単一のコマンドライン引数です。

  <arg line="-l -a"/>

represents two separate command-line arguments.

は、二つのコマンドライン引数を意味します。

  <arg path="/dir;/dir2:\dir3"/>

is a single command-line argument with the value \dir;\dir2;\dir3 on DOS-based systems and /dir:/dir2:/dir3 on Unix-like systems.

は、 DOSベースのシステム上では \dir;\dir2;\dir3、 Unix類似システムでは /dir:/dir2:/dir3 と解釈される 単一コマンドライン引数です。

References

参照

The id attribute of the buildfile's elements can be used to refer to them. This can be useful if you are going to replicate the same snippet of XML over and over again - using a <classpath> structure more than once, for example.

要素に指定した id属性 は、その要素を別の場所から参照するために使うことができます。 例えば、<classpath>構造を繰り返し使いたい、といったような、 同じXMLの断片を何度も複製したいような場合に、便利に使えます。

The following example:

例えば、以下の構造は:

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

could be rewritten as:

以下のように書き直すことができます:

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

All tasks that use nested elements for PatternSets, FileSets, ZipFileSets or path-like structures accept references to these structures as well.

ネストした要素に PatternSetFileSetZipFileSetパス類似構造 などを指定できるタスクでは、参照を使って指定することができます。


Copyright © 2000-2004 The Apache Software Foundation. All rights Reserved.
日本語訳の著作権は、Ja-Jakartaプロジェクトが保有します。 Copyright © 2004 Ja-Jakarta project. All rights Reserved.
[訳注:これは風間、西野の翻訳を参考に、的場が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]