| @@ -28,13 +28,13 @@ | |||
| <p>Properties are key-value pairs where Apache Ant tries to expand <code>${key}</code> | |||
| to <code>value</code> at run time.</p> | |||
| <p>There are many tasks that can set properties, the most common one is | |||
| <p>There are many tasks that can set properties; the most common one is | |||
| the <a href="Tasks/property.html">property</a> task. In addition properties can be defined | |||
| via <a href="running.html">command line arguments</a> or similar mechanisms from outside of | |||
| Ant.</p> | |||
| <p>Normally property values can not be changed, once a property is set, most tasks will not allow | |||
| its value to be modified. In general properties are of global scope, i.e. once they have been | |||
| <p>Normally property values can not be changed: once a property is set, most tasks will not allow | |||
| its value to be modified. In general properties are of global scope, i.e., once they have been | |||
| defined they are available for any task or target invoked subsequently—it is not possible | |||
| to set a property in a child build process created via | |||
| the <a href="Tasks/ant.html">ant</a>, <a href="Tasks/antcall.html">antcall</a> | |||
| @@ -74,12 +74,12 @@ | |||
| <dd>the name of the currently executing project's default target; it is set via | |||
| the <var>default</var> attribute of <code><project></code>.</dd> | |||
| <dt><code>ant.project.invoked-targets</code></dt> | |||
| <dd>a comma separated list of the targets that have been specified on the command line (the IDE, | |||
| an <code><ant></code> task ...) when invoking the current project.<br/> This property | |||
| is set properly when the first target is executed. If you use it in the implicit target | |||
| (directly under the <code><project></code> tag) the list will be empty if no target has | |||
| been specified while it will contain the project's default target in this case for tasks | |||
| nested into targets.</dd> | |||
| <dd>a comma-separated list of the targets that have been specified (on the command line, inside | |||
| of an IDE, by an <code><ant></code> task, etc...) when invoking the current | |||
| project.<br/>This property is set properly when the first target is executed. If you use it in | |||
| the implicit target (directly under the <code><project></code> tag) the list will be | |||
| empty if no target has been specified while it will contain the project's default target in | |||
| this case for tasks nested into targets.</dd> | |||
| <dt><code>ant.java.version</code></dt> | |||
| <dd>the JVM version Ant detected; currently it can hold the | |||
| values <q>9</q>, <q>1.8</q>, <q>1.7</q>, <q>1.6</q>, <q>1.5</q>, <q>1.4</q>, <q>1.3</q> | |||
| @@ -117,7 +117,7 @@ | |||
| PropertyHelper and its delegates from the context of the Ant buildfile.</p> | |||
| <p>There are three sub-interfaces of <code class="code">Delegate</code> that may be useful to | |||
| implement.</p> | |||
| implement:</p> | |||
| <ul> | |||
| <li><code>org.apache.tools.ant.property.PropertyExpander</code> is responsible for finding the | |||
| @@ -150,11 +150,10 @@ | |||
| for setting properties. | |||
| <p>This is the interface you'd implement if you want to provide your own storage independent | |||
| of Ant's project instance—the interface represents the reading end. An example for | |||
| of Ant's project instance—the interface represents the writing end. An example for | |||
| this would be <code class="code">org.apache.tools.ant.property.LocalProperties</code> which | |||
| implements storage for <a href="Tasks/local.html">local properties</a>.</p> | |||
| </li> | |||
| </ul> | |||
| <p>The default <code class="code">PropertyExpander</code> looks similar to:</p> | |||
| @@ -204,7 +203,7 @@ public class ToStringEvaluator implements PropertyHelper.PropertyEvaluator { | |||
| <p>In its default configuration Ant will expand the text <q>$$</q> to a single <q>$</q> and | |||
| suppress the normal property expansion mechanism for the text immediately following it, | |||
| i.e. <samp>$${key}</samp> expands to <samp>${key}</samp> and not <code>value</code> even though | |||
| i.e., <samp>$${key}</samp> expands to <samp>${key}</samp> and not <code>value</code> even though | |||
| a property named <code>key</code> was defined and had the value <samp>value</samp>. This can be | |||
| used to escape literal <q>$</q> characters and is useful in constructs that only look like | |||
| property expansions or when you want to provide diagnostic output like in</p> | |||
| @@ -219,7 +218,7 @@ public class ToStringEvaluator implements PropertyHelper.PropertyEvaluator { | |||
| <p>In order to maintain backward compatibility with older Ant releases, a single <q>$</q> | |||
| character encountered apart from a property-like construct (including a matched pair of french | |||
| braces) will be interpreted literally; that is, as <q>$</q>. The "correct" way to specify this | |||
| braces) will be interpreted literally, that is, as <q>$</q>. The "correct" way to specify this | |||
| literal character, however, is by using the escaping mechanism unconditionally, so | |||
| that <q>$$</q> is obtained by specifying <q>$$$$</q>. Mixing the two approaches yields | |||
| unpredictable results, as <q>$$$</q> results in <q>$$</q>.</p> | |||
| @@ -235,14 +234,14 @@ public class ToStringEvaluator implements PropertyHelper.PropertyEvaluator { | |||
| <li>the literal text <samp>}</samp> resulting from the second closing brace</li> | |||
| </ol> | |||
| <p>This means you can't use easily expand properties whose names are given by properties, but | |||
| <p>This means you can't use easily expand properties whose names are stored in properties, but | |||
| there are <a href="https://ant.apache.org/faq.html#propertyvalue-as-name-for-property" | |||
| target="_top">some workarounds</a> for older versions of Ant. <em>Since Ant 1.8.0</em> using | |||
| the <a href="https://ant.apache.org/antlibs/props/" target="_top">props Antlib</a> you can | |||
| configure Ant to use the <code class="code">NestedPropertyExpander</code> defined there if you | |||
| need such a feature.</p> | |||
| <h2>Expanding a "Property Name"</h2> | |||
| <h2>Expanding a Property Reference</h2> | |||
| <p>In its most simple form <samp>${key}</samp> is supposed to look up a property | |||
| named <code>key</code> and expand to the value of the property. | |||
| @@ -254,13 +253,13 @@ public class ToStringEvaluator implements PropertyHelper.PropertyEvaluator { | |||
| <h3 id="toString">Getting the value of a Reference with <samp>${toString:}</samp></h3> | |||
| <p>Any Ant type which has been declared with a reference can also its string value extracted by | |||
| using the <samp>${toString:}</samp> operation, with the name of the reference listed after | |||
| <p>Any Ant type item which has been declared with a reference can also its string value extracted | |||
| by using the <samp>${toString:}</samp> operation, with the name of the reference listed after | |||
| the <code>toString:</code> text. The <code class="code">toString()</code> method of the Java | |||
| class instance that is referenced is invoked—all built in types strive to produce useful | |||
| and relevant output in such an instance.</p> | |||
| <p>For example, here is how to get a listing of the files in a fileset,<p> | |||
| <p>For example, here is how to get a listing of the files in a fileset:<p> | |||
| <pre> | |||
| <fileset id="sourcefiles" dir="src" includes="**/*.java"/> | |||
| @@ -271,8 +270,8 @@ public class ToStringEvaluator implements PropertyHelper.PropertyEvaluator { | |||
| <h3 id="ant.refid">Getting the value of a Reference with <samp>${ant.refid:}</samp></h3> | |||
| <p>Any Ant type which has been declared with a reference can also be used as a property by using | |||
| the <samp>${ant.refid:}</samp> operation, with the name of the reference listed after | |||
| <p>Any Ant type item which has been declared with a reference can also be used as a property by | |||
| using the <samp>${ant.refid:}</samp> operation, with the name of the reference listed after | |||
| the <code>ant.refid:</code> text. The difference between this operation | |||
| and <a href="#toString"><samp>${toString:}</samp></a> is that <samp>${ant.refid:}</samp> will | |||
| expand to the referenced object itself. In most circumstances | |||