Introduction to Apache Ant

The Apache Ant package is a Java-based build tool. In theory, it is like the make command, but without make's wrinkles. Ant is different. Instead of a model that is extended with shell-based commands, Ant is extended using Java classes. Instead of writing shell commands, the configuration files are XML-based, calling out a target tree that executes various tasks. Each task is run by an object that implements a particular task interface.



Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

Package Information

Apache Ant Dependencies


A JDK (Java Binary or OpenJDK-20.0.2) and GLib-2.78.0



An Internet connection is needed for building this package.

Installation of Apache Ant

Build a limited bootstrap version of Apache Ant using the following command:


Download the runtime dependencies using the fetch.xml ant build script:

bootstrap/bin/ant -f fetch.xml -Ddest=optional

Build Apache Ant by running the following command:

./build.sh -Ddist.dir=$PWD/ant-1.10.14 dist

Install, as the root user:

cp -rv ant-1.10.14 /opt/            &&
chown -R root:root /opt/ant-1.10.14 &&
ln -sfv ant-1.10.14 /opt/ant

Command Explanations

bootstrap/bin/ant -f fetch.xml -Ddest=optional: Downloads the missing dependencies to the user's home directory, and copies them into the source tree (in the lib/optional directory, where ant picks them up at build time).

./build.sh -Ddist.dir=$PWD/ant-1.10.14 dist: This command builds, tests, then installs the package into a temporary directory.

Configuring Apache Ant

Config Files

/etc/ant/ant.conf, ~/.ant/ant.conf, and ~/.antrc

Configuration Information

Some packages will require ant to be in the search path and the ANT_HOME environment variable defined. Satisfy these requirements by issuing, as the root user:

cat > /etc/profile.d/ant.sh << EOF
# Begin /etc/profile.d/ant.sh

pathappend /opt/ant/bin
export ANT_HOME=/opt/ant

# End /etc/profile.d/ant.sh

The above instructions assume you have configured your system as described in The Bash Shell Startup Files.


Installed Programs: ant, antRun, antRun.pl, complete-ant-cmd.pl, runant.pl, and runant.py
Installed Libraries: Numerous ant*.jar and dependent libraries in $ANT_HOME/lib
Installed Directories: /opt/ant-1.10.14

Short Descriptions


is a Java based build tool used by many packages instead of the conventional make program


is a support script used to start ant build scripts in a given directory


is a Perl script that provides similar functionality offered by the antRun script


is a Perl script that allows Bash to complete an ant command-line


is a Perl wrapper script used to invoke ant


is a Python wrapper script used to invoke ant


files are the Apache Ant Java class libraries