diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/manual/Tasks/uptodate.html')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/manual/Tasks/uptodate.html | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/manual/Tasks/uptodate.html b/framework/src/ant/apache-ant-1.9.6/manual/Tasks/uptodate.html new file mode 100644 index 00000000..c724f206 --- /dev/null +++ b/framework/src/ant/apache-ant-1.9.6/manual/Tasks/uptodate.html @@ -0,0 +1,177 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<html> + +<head> +<meta http-equiv="Content-Language" content="en-us"> +<link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> +<title>Uptodate Task</title> +</head> + +<body> + +<h2><a name="uptodate">Uptodate</a></h2> +<h3>Description</h3> +<p>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 <code>srcfile</code> attribute. A set of source files is specified +using the nested <code><srcfiles></code> +elements. These are <a href="../Types/fileset.html">FileSet</a>s, +whereas multiple target files are specified using a nested +<a href="../Types/mapper.html"><code><mapper></code></a> element.</p> +<p>By default, the value of the property is set to <code>true</code> if +the timestamp of the source file(s) is not more recent than the timestamp of +the corresponding target file(s). You can set the value to something other +than the default by specifying the <code>value</code> attribute.</p> +<p>If a <code><srcfiles></code> element is used, without also specifying +a <code><mapper></code> element, the default behavior is to use a +<a href="../Types/mapper.html#merge-mapper">merge mapper</a>, with the +<code>to</code> attribute set to the value of the +<code>targetfile</code> attribute.</p> +<p>Normally, this task is used to set properties that are useful to avoid +target execution depending on the relative age of the specified files.</p> +<h3>Parameters</h3> +<table border="1" cellpadding="2" cellspacing="0"> + <tr> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td align="center" valign="top"><b>Required</b></td> + </tr> + <tr> + <td valign="top">property</td> + <td valign="top">The name of the property to set.</td> + <td valign="top" align="center">Yes</td> + </tr> + <tr> + <td valign="top">value</td> + <td valign="top">The value to set the property to.</td> + <td valign="top" align="center">No; defaults to <code>true</code>.</td> + </tr> + <tr> + <td valign="top">srcfile</td> + <td valign="top">The file to check against the target file(s).</td> + <td valign="top" align="center">Yes, unless a nested + <code><srcfiles></code> or <code><srcresources></code> + element is present.</td> + </tr> + <tr> + <td valign="top">targetfile</td> + <td valign="top">The file for which we want to determine the status.</td> + <td valign="top" align="center">Yes, unless a nested + <code><mapper></code> element is present.</td> + </tr> +</table> + +<h3>Parameters specified as nested elements</h3> +<h4><a name="srcfiles">srcfiles</a></h4> +<p>The nested <code><srcfiles></code> element is a +<a href="../Types/fileset.html">fileset</a> and allows you to +specify a set of files to check against the target file(s).</p> + +<p><strong>Note:</strong> You can specify either the <code>srcfile</code> +attribute or nested <code><srcfiles></code> elements, but not both. + +<p>Note that the task will completely ignore any directories that seem + to be matched by the srcfiles fileset, it will only consider normal + files. If you need logic that applies to directories as well, use a + nested srcresource and a dirset (for example).</p> + +<h4><a name="srcresources">srcresources</a></h4> +<p>The nested <code><srcresources></code> element is a <a +href="../Types/resources.html#union">union</a> and allows you to +specify a collection of resources to check against the target file(s). +<em>Since Apache Ant 1.7</em></p> + +<h4><a name="mapper">mapper</a></h4> +<p>The nested <code><mapper></code> 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.</p> + <p> + The mapper "to" attribute is relative to the target file, or to + the "dir" attribute of the nested srcfiles element. + </p> + <p> + <em>Since Ant 1.6.3</em>, + one can use a filenamemapper type in place of the mapper element. + </p> +<h3>Examples</h3> +<pre> <uptodate property="xmlBuild.notRequired" targetfile="${deploy}\xmlClasses.jar" > + <srcfiles dir= "${src}/xml" includes="**/*.dtd"/> + </uptodate></pre> +<p>sets the property <code>xmlBuild.notRequired</code> to <code>true</code> +if the <code>${deploy}/xmlClasses.jar</code> file is more up-to-date than +any of the DTD files in the <code>${src}/xml</code> directory.</p> +<p>This can be written as:</p> +<pre> <uptodate property="xmlBuild.notRequired"> + <srcfiles dir= "${src}/xml" includes="**/*.dtd"/> + <mapper type="merge" to="${deploy}\xmlClasses.jar"/> + </uptodate></pre> +as well. + +The <code>xmlBuild.notRequired</code> property can then be used in a +<code><target></code> tag's <code>unless</code> attribute to +conditionally run that target. For example, running the following target:</p> +<pre> +<target name="xmlBuild" depends="chkXmlBuild" unless="xmlBuild.notRequired"> + ... +</target> +</pre> +will first run the <code>chkXmlBuild</code> target, which contains +the <code><uptodate></code> task that determines whether +<code>xmlBuild.notRequired</code> gets set. The property named in +the <code>unless</code> attribute is then checked for being set/not set. +If it did get set (ie., the jar file is up-to-date), +then the <code>xmlBuild</code> target won't be run. +</p> + +<p> The following example shows a single source file being checked +against a single target file:</p> +<pre> <uptodate property="isUpToDate" + srcfile="/usr/local/bin/testit" + targetfile="${build}/.flagfile"/> +</pre> +<p>sets the property <code>isUpToDate</code> to <code>true</code> +if <code>/usr/local/bin/testit</code> is not newer than +<code>${build}/.flagfile</code>.</p> +</p> + <p> + The following shows usage of a relative mapper. + </p> + <pre> + <uptodate property="checkUptodate.uptodate"> + <srcfiles dir="src" includes="*"/> + <mapper type="merge" to="../dest/output.done"/> + </uptodate> + <echo message="checkUptodate result: ${checkUptodate.uptodate}"/> + </pre> + <p> + The previous example can be a bit confusing, so it may be better to + use absolute paths: + </p> + <pre> + <property name="dest.dir" location="dest"/> + <uptodate property="checkUptodate.uptodate"> + <srcfiles dir="src" includes="*"/> + <mapper type="merge" to="${dest.dir}/output.done"/> + </uptodate> + </pre> + + + +</body> +</html> + |