#### Beyond Linux® From Scratch (systemd Edition) - Version 10.1

### Chapter 13. Programming

- Prev

  Configuring the JAVA environment

- Next

  Networking

- Up
- Home

# apache-ant-1.10.9

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

This package is known to build and work properly using an LFS-10.1 platform.

### Package Information

- Download (HTTP): https://archive.apache.org/dist/ant/source/apache-ant-1.10.9-src.tar.xz

- Download MD5 sum: 700443388a718591dc1e031e52e9be3b

- Download size: 4.3 MB

- Estimated disk space required: 142 MB

- Estimated build time: 0.3 SBU (excluding download time)

### Apache Ant Dependencies

#### Required

A JDK (Java Binary or OpenJDK-15.0.2) and GLib-2.66.7

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/apache-ant

## Installation of Apache Ant

First fix an incompatibility issue between the documentation standard used in the build tree, and the one expected by OpenJDK-15.0.2:

    sed -i 's/--add-modules java.activation/-html4/' build.xml

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

    ./bootstrap.sh

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.9 dist

Install, as the `root` user:

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

## Command Explanations

bootstrap/bin/ant -f fetch.xml -Ddest=optional: Downloads the missing dependencies to user's home directory, and copy 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.9 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
    EOF

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

## Contents

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

### Short Descriptions

ant | is a Java based build tool used by many packages instead of the conventional make program
antRun | is a support script used to start ant build scripts in a given directory
antRun.pl | is a Perl script that provides similar functionality offered by the antRun script
complete-ant-cmd.pl | is a Perl script that allows Bash to complete an ant command-line
runant.pl | is a Perl wrapper script used to invoke ant
runant.py | is a Python wrapper script used to invoke ant
`ant*.jar` | files are the Apache Ant Java class libraries

Last updated on 2021-02-23 12:52:46 -0800

- Prev

  Configuring the JAVA environment

- Next

  Networking

- Up
- Home