Including and Excluding Files
Problem
You want to include and/or exclude certain files and directories from a build.
Solution
Use Ant patterns along with
<include>
and
<exclude>
tags, or
includes
and excludes
attributes.
Discussion
Ant uses a simple
pattern syntax for selecting files,
which you have undoubtedly seen in other examples throughout this
chapter. Here is how you can use this syntax to include all
.java
files in a particular directory:
includes="src/com/oreilly/util/*.java"
Because Java projects are typically divided into numerous packages and subdirectories, you frequently use the ** wildcard to scan all subdirectories:
includes="src/**/*.java"
This tells Ant to locate all files ending with
.java
in the src
directory
and any subdirectories.
In the Ant pattern language,
"
*” matches
any number of characters and
"
?” matches
one character. So you can locate Test1.java
and
Test2.java
as follows:
includes="Test?.java"
Because “?” matches a single
character, TestABC.java
is not matched by the
preceding pattern.
Patterns can be combined. Table 3-2 shows some additional pattern examples.
Table 3-2. Ant pattern-matching examples
Pattern |
Matches |
Does not match |
---|---|---|
*.java |
Person.java |
Person.class |
Person*.java |
Person.java, PersonA.java, PersonBoss.java |
P.java, BossPerson.java |
Test?.java |
TestA.java |
Test.java, TestOne.java |
**/*.txt |
a.txt, src/a.txt, src/com/oreilly/b.txt |
Files not ending in .txt |
src/**/*.java |
src/A.java, src/com/oreilly/File.java |
B.java, src/com/oreilly/C.class ... |
Get Java Extreme Programming Cookbook 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.