- ANT - Listeners and Loggers
- ANT - Custom Components
- ANT - Using If Else arguments
- ANT - Using Command Line Arguments
- ANT - Using Token
- ANT - Extending Ant
- ANT - JUnit Integration
- ANT - Eclipse Integration
- ANT - Executing Java code
- ANT - Deploying Applications
- ANT - Packaging Applications
- ANT - Create WAR Files
- ANT - Creating JAR files
- ANT - Build Documentation
- ANT - Building Projects
- ANT - Data Types
- ANT - Property Files
- ANT - Property Task
- ANT - Build Files
- ANT - Environment Setup
- ANT - Introduction
- ANT - Home
Apache ANT Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Ant - Data Types
Ant provides a number of predefined data types. Do not confuse the term "data types" with those that are available in the programming language. Instead, consider them as a set of services that are built into the product already.
Data Types in Ant
The following data types are provided by Apache Ant.
Fileset
The fileset data type represents a collection of files. It is used as a filter to include or exclude files that match a particular pattern.
For example, refer the following code. Here, the src attribute points to the source folder of the project.
<fileset dir="${src}" casesensitive="yes"> <include name="**/*.java"/> <exclude name="**/*Stub*"/> </fileset>
The fileset selects all .java files in the source folder except those contain the word Stub .The case-sensitive filter is appped to the fileset, which means a file with the name Samplestub.java will not be excluded from the fileset.
Pattern set
A pattern set is a pattern that allows to filter files or folders easily based on certain patterns. The patterns can be created using the following meta characters −
? - Matches one character only.
- Matches zero or many characters.
** - Matches zero or many directories recursively.
The following example depicts the usage of a pattern set.
<patternset id="java.files.without.stubs"> <include name="src/**/*.java"/> <exclude name="src/**/*Stub*"/> </patternset>
The patternset can then be reused with a fileset as follows −
<fileset dir="${src}" casesensitive="yes"> <patternset refid="java.files.without.stubs"/> </fileset>
File pst
The filepst data type is similar to the file set except the following differences −
It contains exppcitly named psts of files and it does not support wild cards.
This data type can be appped for existing or non-existing files.
Let us see the following example of the filepst data type. Here, the attribute webapp.src.folder points to the web apppcation source folder of the project.
<filepst id="config.files" dir="${webapp.src.folder}"> <file name="apppcationConfig.xml"/> <file name="faces-config.xml"/> <file name="web.xml"/> <file name="portlet.xml"/> </filepst>
Filter set
By using a filterset data type along with the copy task, you can replace certain text in all the files that matches the pattern with a replacement value.
A common example is to append the version number to the release notes file, as shown in the following code.
<copy todir="${output.dir}"> <fileset dir="${releasenotes.dir}" includes="**/*.txt"/> <filterset> <filter token="VERSION" value="${current.version}"/> </filterset> </copy>
In the above mentioned code −
The attribute output.dir points to the output folder of the project.
The attribute releasenotes.dir points to the release notes folder of the project.
The attribute current.version points to the current version folder of the project.
The copy task, as the name suggests, is used to copy files from one location to another.
Path
The path data type is commonly used to represent a class-path. Entries in the path are separated using semicolons or colons. However, these characters are replaced at the runtime by the executing system s path separator character.
The classpath is set to the pst of jar files and classes in the project, as shown in the example below.
<path id="build.classpath.jar"> <pathelement path="${env.J2EE_HOME}/${j2ee.jar}"/> <fileset dir="pb"> <include name="**/*.jar"/> </fileset> </path>
In the code given above −
The attribute env.J2EE_HOME points to the environment variable J2EE_HOME.
The attribute j2ee.jar points to the name of the J2EE jar file in the J2EE base folder.