From 753a6c60f47f3ac4f270005b65e9d6481de8eb68 Mon Sep 17 00:00:00 2001 From: Ashlee Young Date: Fri, 23 Oct 2015 10:00:02 -0700 Subject: Adding maven and ant source trees Change-Id: I0a39b9add833a31b9c3f98d193983ae2f3a5a445 Signed-off-by: Ashlee Young --- .../src/ant/apache-ant-1.9.6/manual/dirtasks.html | 314 +++++++++++++++++++++ 1 file changed, 314 insertions(+) create mode 100644 framework/src/ant/apache-ant-1.9.6/manual/dirtasks.html (limited to 'framework/src/ant/apache-ant-1.9.6/manual/dirtasks.html') 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 @@ + + + + + + +Directory-based Tasks + + + + +

Directory-based Tasks

+

Some tasks use directory trees for the actions they perform. +For example, the javac task, which +compiles a directory tree with .java files into +.class 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 FileSet.

+

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.

+

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:

+ +

Patternset

+ +

We said that Directory-based tasks can sometimes act as an implicit +<fileset>, +but in addition to that, a FileSet acts as an implicit +<patternset>.

+ +

The inclusion and exclusion elements of the implicit PatternSet can be +specified inside the directory-based task (or explicit fileset) via +either:

+ +

+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.

+ +

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).

+ +

Patterns

+ +

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:

+

'*' matches zero or more characters, '?' matches one character.

+ +

In general, patterns are considered relative paths, relative to a +task dependent base directory (the dir attribute in the case of +<fileset>). Only files found below that base +directory are considered. So while a pattern like +../foo.java is possible, it will not match anything when +applied since the base directory's parent is never scanned for +files.

+ +

Examples:

+

+*.java  matches  .java, +x.java and FooBar.java, but +not FooBar.xml (does not end with .java).

+

+?.java  matches  x.java, +A.java, but not .java or xyz.java +(both don't have one character before .java).

+

+Combinations of *'s and ?'s are allowed.

+

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 +/?abc/*/*.java +and the path /xabc/foobar/test.java, +the first ?abc is matched with xabc, +then * is matched with foobar, +and finally *.java is matched with test.java. +They all match, so the path matches the pattern.

+

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, ** +must be used as the name of a directory. +When ** is used as the name of a +directory in the pattern, it matches zero or more directories. +For example: +/test/** matches all files/directories under /test/, +such as /test/x.java, +or /test/foo/bar/xyz.html, but not /xyz.xml.

+

There is one "shorthand": if a pattern ends +with / +or \, then ** +is appended. +For example, mypackage/test/ is interpreted as if it were +mypackage/test/**.

+

Example patterns:

+ + + + + + + + + + + + + + + + + +
**/CVS/*Matches all files in CVS + directories that can be located + anywhere in the directory tree.
+ Matches: +
+      CVS/Repository
+      org/apache/CVS/Entries
+      org/apache/jakarta/tools/ant/CVS/Entries
+      
+ But not: +
+      org/apache/CVS/foo/bar/Entries (foo/bar/
+      part does not match)
+      
+
org/apache/jakarta/**Matches all files in the org/apache/jakarta + directory tree.
+ Matches: +
+      org/apache/jakarta/tools/ant/docs/index.html
+      org/apache/jakarta/test.xml
+      
+ But not: +
+      org/apache/xyz.java
+      
+ (jakarta/ part is missing).
org/apache/**/CVS/*Matches all files in CVS directories + that are located anywhere in the directory tree under + org/apache.
+ Matches: +
+      org/apache/CVS/Entries
+      org/apache/jakarta/tools/ant/CVS/Entries
+      
+ But not: +
+      org/apache/CVS/foo/bar/Entries
+      
+ (foo/bar/ part does not match)
**/test/**Matches all files that have a test + element in their path, including test as a filename.
+

When these patterns are used in inclusion and exclusion, you have a powerful +way to select just the files you want.

+ +

Selectors

+

The <fileset>, +whether implicit or explicit in the +directory-based task, also acts as an +<and> +selector container. This can be used to create arbitrarily complicated +selection criteria for the files the task should work with. See the +Selector documentation for more +information.

+ +

Standard Tasks/Filesets

+

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:

+ + +

Examples

+
+<copy todir="${dist}">
+  <fileset dir="${src}"
+           includes="**/images/*"
+           excludes="**/*.gif"
+  />
+</copy>
+

This copies all files in directories called images that are +located in the directory tree defined by ${src} to the +destination directory defined by ${dist}, +but excludes all *.gif files from the copy.

+
+<copy todir="${dist}">
+  <fileset dir="${src}">
+    <include name="**/images/*"/>
+    <exclude name="**/*.gif"/>
+  </fileset>
+</copy>
+
+

The same as the example above, but expressed using nested elements.

+ +
+<delete dir="${dist}">
+    <include name="**/images/*"/>
+    <exclude name="**/*.gif"/>
+</delete>
+
+

Deleting the original set of files, the delete task can act +as an implicit fileset.

+ +

Default Excludes

+

There are a set of definitions that are excluded by default from all +directory-based tasks. As of Ant 1.8.1 they are:

+
+     **/*~
+     **/#*#
+     **/.#*
+     **/%*%
+     **/._*
+     **/CVS
+     **/CVS/**
+     **/.cvsignore
+     **/SCCS
+     **/SCCS/**
+     **/vssver.scc
+     **/.svn
+     **/.svn/**
+     **/.DS_Store
+
+

Ant 1.8.2 adds the following default excludes:

+
+     **/.git
+     **/.git/**
+     **/.gitattributes
+     **/.gitignore
+     **/.gitmodules
+     **/.hg
+     **/.hg/**
+     **/.hgignore
+     **/.hgsub
+     **/.hgsubstate
+     **/.hgtags
+     **/.bzr
+     **/.bzr/**
+     **/.bzrignore
+
+

If you do not want these default excludes applied, you may disable +them with the defaultexcludes="no" +attribute.

+ +

This is the default list; note that you can modify the list of +default excludes by using the defaultexcludes task.

+ + + + + + -- cgit 1.2.3-korg