Sets a property if a target file or set of target files is more up-to-date than a source file or set of source files. A single source file is specified using the srcfile attribute. A set of source files is specified using the nested <srcfiles> elements. These are FileSets, whereas multiple target files are specified using a nested <mapper> element.

ターゲットのファイルやファイル集合が、 ソースファイルのファイルやファイル集合よりも最新のものである場合、 プロパティを設定します。 一つのソースファイルは、 srcfile属性を用いて指定されます。 ソースファイルの集合は、 ネストされた<srcfiles>要素を用いて指定されます。 ネストされた <mapper> 要素を用いて複数のターゲットファイルが指定されるので、 複数のファイルセットがあります。

By default, the value of the property is set to true if the timestamp of the target file(s) is more recent than the timestamp of the corresponding source file(s). You can set the value to something other than the default by specifying the value attribute.

デフォルトでは、ターゲットファイルのタイムスタンプが、 ソースファイルのタイムスタンプよりも新しい場合、 プロパティの値にtrueが設定されます。 value属性を指定することにより、 デフォルトと違う何かを値に指定することができます。

If a <srcfiles> element is used, without also specifying a <mapper> element, the default behavior is to use a merge mapper, with the to attribute set to the value of the targetfile attribute.

<mapper>要素が指定されずに、 <srcfiles> 要素が使われた場合、 デフォルトの振舞いでは、 targetfile属性の値を持つ to属性が設定された merge mapper を使用します。

Normally, this task is used to set properties that are useful to avoid target execution depending on the relative age of the specified files.

一般的には、このタスクは 指定されたファイルの相対的な時刻に依存して、 ターゲットの実行を避けるのに便利なプロパティを設定するのに使われます。



Attribute Description Required
property The name of the property to set. Yes
value The value to set the property to. No; defaults to true.
srcfile The file to check against the target file(s). Yes, unless a nested <srcfiles> element is present.
targetfile The file for which we want to determine the status. Yes, unless a nested <mapper> element is present.
属性 説明 必須
property 設定するプロパティ名 Yes
value プロパティに設定する値 No; デフォルトはtrue.
srcfile ターゲットファイルに対し比較するファイル ネストされた<srcfiles> 要素が存在しない限り Yes
targetfile 状態を判定したいファイル ネストされた<mapper> 要素が存在しない限り Yes

Parameters specified as nested elements



The nested <srcfiles> element allows you to specify a set of files to check against the target file(s).

ネストされた <srcfiles> 要素により、 ターゲットファイルに対し判定するためのファイル集合を指定できます。

Note: You can specify either the srcfile attribute or nested <srcfiles> elements, but not both.

注意: srcfile属性、あるいは、 ネストされた<srcfiles> 要素が指定できますが、両方は指定できません。


The nested <mapper> element allows you to specify a set of target files to check for being up-to-date with respect to a set of source files.

ネストされた<mapper>要素により、 ソースファイルの集合と比較して、 最新であるかチェックするターゲットファイルの集合を指定できます。


  <uptodate property="xmlBuild.notRequired" targetfile="${deploy}\xmlClasses.jar" >
    <srcfiles dir= "${src}/xml" includes="**/*.dtd"/>

sets the property xmlBuild.notRequired to true if the ${deploy}/xmlClasses.jar file is more up-to-date than any of the DTD files in the ${src}/xml directory.

${deploy}/xmlClasses.jar${src}/xmlディレクトリにある全てのDTDファイルよりも最新である場合、 xmlBuild.notRequiredtrue に設定します。

This can be written as:


  <uptodate property="xmlBuild.notRequired">
    <srcfiles dir= "${src}/xml" includes="**/*.dtd"/>
    <mapper type="merge" to="${deploy}\xmlClasses.jar"/>

as well. The xmlBuild.notRequired property can then be used in a <target> tag's unless attribute to conditionally run that target. For example, running the following target:

そして、 xmlBuild.notRequired プロパティは <target>タグの unless属性で、 条件によりターゲットを実行するのに使われます。 例えば、次のようなターゲットを実行すると:

<target name="xmlBuild" depends="chkXmlBuild" unless="xmlBuild.notRequired">

will first run the chkXmlBuild target, which contains the <uptodate> task that determines whether xmlBuild.notRequired gets set. The property named in the unless attribute is then checked for being set/not set. If it did get set (ie., the jar file is up-to-date), then the xmlBuild target won't be run.

will first run the 最初に、 xmlBuild.notRequiredが設定されたかどうか判定する <uptodate>タスクが入っている chkXmlBuild ターゲットを実行します。 次に、 unless属性で名づけられたプロパティは 設定されたかどうか判定されます。 設定された場合(即ち jar ファイルが最新だった場合)、 xmlBuildターゲットは実行されません。

The following example shows a single source file being checked against a single target file:


  <uptodate property="isUpToDate"

sets the property isUpToDate to true if /usr/local/bin/testit is newer than ${build}/.flagfile.

/usr/local/bin/testit${build}/.flagfileよりも新しい場合、 プロパティisUpToDatetrueに設定します。

Copyright © 2000-2002 Apache Software Foundation. All rights Reserved.

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