diff options
author | Ashlee Young <ashlee@onosfw.com> | 2015-10-23 10:00:02 -0700 |
---|---|---|
committer | Ashlee Young <ashlee@onosfw.com> | 2015-10-23 10:00:02 -0700 |
commit | 753a6c60f47f3ac4f270005b65e9d6481de8eb68 (patch) | |
tree | 3d0a1ae3b4d994550f6614b417b991eee3eb8911 /framework/src/ant/apache-ant-1.9.6/manual/dirtasks.html | |
parent | c62d20eb3b4620c06d833be06f50b2600d96dd42 (diff) |
Adding maven and ant source trees
Change-Id: I0a39b9add833a31b9c3f98d193983ae2f3a5a445
Signed-off-by: Ashlee Young <ashlee@onosfw.com>
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/manual/dirtasks.html')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/manual/dirtasks.html | 314 |
1 files changed, 314 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/manual/dirtasks.html b/framework/src/ant/apache-ant-1.9.6/manual/dirtasks.html new file mode 100644 index 00000000..5c232298 --- /dev/null +++ b/framework/src/ant/apache-ant-1.9.6/manual/dirtasks.html @@ -0,0 +1,314 @@ +<!-- + 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>Directory-based Tasks</title> +</head> + +<body> + +<h2><a name="directorybasedtasks">Directory-based Tasks</a></h2> +<p>Some tasks use directory trees for the actions they perform. +For example, the <a href="Tasks/javac.html">javac</a> task, which +compiles a directory tree with <code>.java</code> files into +<code>.class</code> files, is one of these directory-based tasks. Because +some of these tasks do so much work with a directory tree, the task itself +can act as an implicit <a href="Types/fileset.html">FileSet</a>.</p> +<p>Whether the fileset is implicit or not, it can often be very useful to +work on a subset of the directory tree. This section describes how you can +select a subset of such a directory tree when using one of these +directory-based tasks.</p> +<p>Apache Ant gives you two ways to create a subset of files in a fileset, both of +which can be used at the same time:</p> +<ul> + <li>Only include files and directories that match any + <code>include</code> patterns and do not match any + <code>exclude</code> patterns in a given + <a href="Types/patternset.html">PatternSet</a>.</li> + <li>Select files based on selection criteria defined by a collection of + <a href="Types/selectors.html">selector</a> nested elements.</li> +</ul> +<h3><a name="patternset">Patternset</a></h3> + +<p>We said that Directory-based tasks can sometimes act as an implicit +<a href="Types/fileset.html"><code><fileset></code></a>, +but in addition to that, a FileSet acts as an implicit +<a href="Types/patternset.html"><code><patternset></code></a>.</p> + +<p>The inclusion and exclusion elements of the implicit PatternSet can be +specified inside the directory-based task (or explicit fileset) via +either:</p> +<ul> + <li>the attributes <code>includes</code> and + <code>excludes</code>.</li> + <li>nested elements <code><include></code> and + <code><exclude></code>.</li> + <li>external files specified with the attributes + <code>includesfile</code> and <code>excludesfile</code>.</li> + <li>external files specified with the nested elements + <code><includesfile></code> and <code><excludesfile></code>. + </li> +</ul> +<p> +When dealing with an external file, each line of the file +is taken as a pattern that is added to the list of include or exclude +patterns.</p> + +<p>When both inclusion and exclusion are used, only files/directories that +match at least one of the include patterns and don't match any of the +exclude patterns are used. If no include pattern is given, all files +are assumed to match the include pattern (with the possible exception of +the default excludes).</p> + +<h4><a name="patterns">Patterns</a></h4> + +<p>As described earlier, patterns are used for the inclusion and exclusion +of files. These patterns look very much like the patterns used in DOS and +UNIX:</p> +<p>'*' matches zero or more characters, '?' matches one character.</p> + +<p>In general, patterns are considered relative paths, relative to a +task dependent base directory (the dir attribute in the case of +<code><fileset></code>). Only files found below that base +directory are considered. So while a pattern like +<code>../foo.java</code> is possible, it will not match anything when +applied since the base directory's parent is never scanned for +files.</p> + +<p><b>Examples:</b></p> +<p> +<code>*.java</code> matches <code>.java</code>, +<code>x.java</code> and <code>FooBar.java</code>, but +not <code>FooBar.xml</code> (does not end with <code>.java</code>).</p> +<p> +<code>?.java</code> matches <code>x.java</code>, +<code>A.java</code>, but not <code>.java</code> or <code>xyz.java</code> +(both don't have one character before <code>.java</code>).</p> +<p> +Combinations of <code>*</code>'s and <code>?</code>'s are allowed.</p> +<p>Matching is done per-directory. This means that first the first directory in +the pattern is matched against the first directory in the path to match. Then +the second directory is matched, and so on. For example, when we have the pattern +<code>/?abc/*/*.java</code> +and the path <code>/xabc/foobar/test.java</code>, +the first <code>?abc</code> is matched with <code>xabc</code>, +then <code>*</code> is matched with <code>foobar</code>, +and finally <code>*.java</code> is matched with <code>test.java</code>. +They all match, so the path matches the pattern.</p> +<p>To make things a bit more flexible, we add one extra feature, which makes it +possible to match multiple directory levels. This can be used to match a +complete directory tree, or a file anywhere in the directory tree. +To do this, <code>**</code> +must be used as the name of a directory. +When <code>**</code> is used as the name of a +directory in the pattern, it matches zero or more directories. +For example: +<code>/test/**</code> matches all files/directories under <code>/test/</code>, +such as <code>/test/x.java</code>, +or <code>/test/foo/bar/xyz.html</code>, but not <code>/xyz.xml</code>.</p> +<p>There is one "shorthand": if a pattern ends +with <code>/</code> +or <code>\</code>, then <code>**</code> +is appended. +For example, <code>mypackage/test/</code> is interpreted as if it were +<code>mypackage/test/**</code>.</p> +<p><b>Example patterns:</b></p> +<table border="1" cellpadding="2" cellspacing="0"> + <tr> + <td valign="top"><code>**/CVS/*</code></td> + <td valign="top">Matches all files in <code>CVS</code> + directories that can be located + anywhere in the directory tree.<br> + Matches: + <pre> + CVS/Repository + org/apache/CVS/Entries + org/apache/jakarta/tools/ant/CVS/Entries + </pre> + But not: + <pre> + org/apache/CVS/foo/bar/Entries (<code>foo/bar/</code> + part does not match) + </pre> + </td> + </tr> + <tr> + <td valign="top"><code>org/apache/jakarta/**</code></td> + <td valign="top">Matches all files in the <code>org/apache/jakarta</code> + directory tree.<br> + Matches: + <pre> + org/apache/jakarta/tools/ant/docs/index.html + org/apache/jakarta/test.xml + </pre> + But not: + <pre> + org/apache/xyz.java + </pre> + (<code>jakarta/</code> part is missing).</td> + </tr> + <tr> + <td valign="top"><code>org/apache/**/CVS/*</code></td> + <td valign="top">Matches all files in <code>CVS</code> directories + that are located anywhere in the directory tree under + <code>org/apache</code>.<br> + Matches: + <pre> + org/apache/CVS/Entries + org/apache/jakarta/tools/ant/CVS/Entries + </pre> + But not: + <pre> + org/apache/CVS/foo/bar/Entries + </pre> + (<code>foo/bar/</code> part does not match)</td> + </tr> + <tr> + <td valign="top"><code>**/test/**</code></td> + <td valign="top">Matches all files that have a <code>test</code> + element in their path, including <code>test</code> as a filename.</td> + </tr> +</table> +<p>When these patterns are used in inclusion and exclusion, you have a powerful +way to select just the files you want.</p> + +<h3><a name="selectors">Selectors</a></h3> +<p>The <a href="Types/fileset.html"><code><fileset></code></a>, +whether implicit or explicit in the +directory-based task, also acts as an +<a href="Types/selectors.html#andselect"><code><and></code></a> +selector container. This can be used to create arbitrarily complicated +selection criteria for the files the task should work with. See the +<a href="Types/selectors.html">Selector</a> documentation for more +information.</p> + +<h3><a name="tasklist">Standard Tasks/Filesets</a></h3> +<p>Many of the standard tasks in ant take one or more filesets which follow +the rules given here. This list, a subset of those, is a list of standard ant +tasks that can act as an implicit fileset:</p> +<ul> + <li><a href="Tasks/checksum.html"><code><checksum></code></a></li> + <li><a href="Tasks/copydir.html"><code><copydir></code></a> (deprecated)</li> + <li><a href="Tasks/delete.html"><code><delete></code></a></li> + <li><a href="Tasks/dependset.html"><code><dependset></code></a></li> + <li><a href="Tasks/fixcrlf.html"><code><fixcrlf></code></a></li> + <li><a href="Tasks/javac.html"><code><javac></code></a></li> + <li><a href="Tasks/replace.html"><code><replace></code></a></li> + <li><a href="Tasks/rmic.html"><code><rmic></code></a></li> + <li><a href="Tasks/style.html"><code><style></code> (aka <code><xslt></code>)</a></li> + <li><a href="Tasks/tar.html"><code><tar></code></a></li> + <li><a href="Tasks/zip.html"><code><zip></code></a></li> + <li><a href="Tasks/ejb.html#ddcreator"><code><ddcreator></code></a></li> + <li><a href="Tasks/ejb.html#ejbjar"><code><ejbjar></code></a></li> + <li><a href="Tasks/ejb.html#ejbc"><code><ejbc></code></a></li> + <li><a href="Tasks/cab.html"><code><cab></code></a></li> + <li><a href="Tasks/native2ascii.html"><code><native2ascii></code></a></li> + <li><a href="Tasks/netrexxc.html"><code><netrexxc></code></a></li> + <li> + <a href="Tasks/renameextensions.html"><code><renameextensions></code></a> + </li> + <li><a href="Tasks/depend.html"><code><depend></code></a></li> + <li><a href="Tasks/translate.html"><code><translate></code></a></li> + <li><a href="Tasks/image.html"><code><image></code></a></li> + <li><a href="Tasks/jlink.html"><code><jlink></code></a> (deprecated)</li> + <li><a href="Tasks/jspc.html"><code><jspc></code></a></li> + <li><a href="Tasks/wljspc.html"><code><wljspc></code></a></li> +</ul> + +<h3><a name="examples">Examples</a></h3> +<pre> +<copy todir="${dist}"> + <fileset dir="${src}" + includes="**/images/*" + excludes="**/*.gif" + /> +</copy></pre> +<p>This copies all files in directories called <code>images</code> that are +located in the directory tree defined by <code>${src}</code> to the +destination directory defined by <code>${dist}</code>, +but excludes all <code>*.gif</code> files from the copy.</p> +<pre> +<copy todir="${dist}"> + <fileset dir="${src}"> + <include name="**/images/*"/> + <exclude name="**/*.gif"/> + </fileset> +</copy> +</pre> +<p> The same as the example above, but expressed using nested elements.</p> + +<pre> +<delete dir="${dist}"> + <include name="**/images/*"/> + <exclude name="**/*.gif"/> +</delete> +</pre> +<p>Deleting the original set of files, the <code>delete</code> task can act +as an implicit fileset.</p> + +<h3><a name="defaultexcludes">Default Excludes</a></h3> +<p>There are a set of definitions that are excluded by default from all +directory-based tasks. As of Ant 1.8.1 they are:</p> +<pre> + **/*~ + **/#*# + **/.#* + **/%*% + **/._* + **/CVS + **/CVS/** + **/.cvsignore + **/SCCS + **/SCCS/** + **/vssver.scc + **/.svn + **/.svn/** + **/.DS_Store +</pre> +<p>Ant 1.8.2 adds the following default excludes:</p> +<pre> + **/.git + **/.git/** + **/.gitattributes + **/.gitignore + **/.gitmodules + **/.hg + **/.hg/** + **/.hgignore + **/.hgsub + **/.hgsubstate + **/.hgtags + **/.bzr + **/.bzr/** + **/.bzrignore +</pre> +<p>If you do not want these default excludes applied, you may disable +them with the <code>defaultexcludes="no"</code> +attribute.</p> + +<p>This is the default list; note that you can modify the list of +default excludes by using the <a +href="Tasks/defaultexcludes.html">defaultexcludes</a> task.</p> + + + +</body> +</html> + |