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 ... |
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access