Name

uptodate

Synopsis

Sets a property if one or more target files are up-to-date with respect to corresponding source files. The property is set if the target is newer than all source files.

Attributes

property (all, String, Y)

The property to set.

targetfile (all, File, *)

A target file to check.

value (1.4, String, N)

The value to set the property to. Defaults to true.

The targetfile attribute is required unless a nested <mapper> is specified.

Content

0..n nested <srcfiles> elements (all)

Each is a fileset defining a set of source files to compare.

0,1 nested <mapper> elements (1.3, 1.4)

Defines how source files relate to target files. If not specified, this task uses a merge mapper whose to attribute is set to the value of the uptodate task’s targetfile attribute.

Example Usage

The following example sets the jar_ok property if classes.jar is newer than the .class files found in the project directory and all its subdirectories.

<uptodate property="jar_ok" targetfile="${builddir}/classes.jar">
  <srcfiles dir="${builddir}" includes="**/*.class"/>
</uptodate>

This next example assumes we have a custom code generator that creates .java files based on .template files. It uses a nested <mapper> and sets the codegen_uptodate property whenever all .java files are up-to-date with respect to their corresponding .template files.

<uptodate property="codegen_uptodate">
  <srcfiles dir="src" includes="**/*.template"/>
  <mapper type="glob" from="*.template" to="*.java"/>
</uptodate>

See Also

mappers are discussed ...

Get Ant: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.