0% found this document useful (0 votes)
49 views19 pages

Ant

Ant is a Java-based build tool that allows developers to compile, test, and package Java applications. It uses XML files to describe and execute build processes in a platform-independent manner. Key features of Ant include supporting cross-platform builds, easy creation of custom tasks, and integration with IDEs and tools like Tomcat for web application deployment.

Uploaded by

mnreddy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views19 pages

Ant

Ant is a Java-based build tool that allows developers to compile, test, and package Java applications. It uses XML files to describe and execute build processes in a platform-independent manner. Key features of Ant include supporting cross-platform builds, easy creation of custom tasks, and integration with IDEs and tools like Tomcat for web application deployment.

Uploaded by

mnreddy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 19

ANT:

Another Nice Tool


Ali Beyad
October 1, 2003

What is Ant?

Java-based Build tool from Apache


De facto standard for building, packaging, and
installing Java applications
Accomplishes same objectives that make does on
Unix based systems
Files are written in XML

Why Ant?

Unlike makefiles, Ant files work cross platform


- No need for multiple, complex makefiles
depending on the operating system.
- Tasks declared in platform independent way;
Ant engine translates to OS specific commands.
Easy to create own Ant tasks, in addition to
core tasks

Installing Ant

Download Ant binary distribution from:


http://ant.apache.org/bindownload.cgi
Set ANT_HOME to where you installed Ant
Include $ANT_HOME/bin in PATH
Make sure JAVA_HOME is set to point to JDK

Running Ant

Type ant at the command line


Automatically looks for build.xml file in current
directory to run
Type ant buildfile buildfile.xml to specify
another build file to run.

Ant Output

Sample build.xml
<project name="MyProject" default="dist" basedir=".">
<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="dist" location="dist"/>
<target name="init">
<tstamp/>
<mkdir dir="${build}"/>
</target>
<target name="compile" depends="init" >
<javac srcdir="${src}" destdir="${build}"/>
</target>
<target name="dist" depends="compile" >
<mkdir dir="${dist}/lib"/>
<jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
</target>
<target name="clean" >
<delete dir="${build}"/>
<delete dir="${dist}"/>
</target>
</project>

Ant Overview: Project

Each build file contains exactly one project and


at least one target
Project tags specify the basic project attributes
and have 3 properties:
- name
- default target
- basedir
Example: <project name=MyProject default=build basedir=.>

Ant Overview: Targets

Target is a build module in Ant


Each target contains task(s) for Ant to do
One must be a project default
Overall structure of targets:
<target name="A"/>
<target name="B" depends="A"/>
<target name="C" depends="B"/>
<target name="D" depends="C,B,A"/>

Ant Overview: Tasks

Each target comprises one or more tasks


Task is a piece of executable Java code (e.g.
javac, jar, etc)
Tasks do the actual build work in Ant
Ant has core (built in) tasks and the ability to
create own tasks

Ant Overview: Tasks


Example:
<target name="prepare" depends="init >

<mkdir dir="${build}" />


</target>
<target name="build" depends="copy" >

<javac srcdir="src" destdir="${build}">


<include name="**/*.java" />
</javac>
</target>

Ant Overview: Core Tasks

javac Runs the Java Compiler


java Runs the Java Virtual Machine
jar (and war) Create JAR files
mkdir Makes a directory
copy Copies files to specified location
delete Deletes specified files
cvs Invokes CVS commands from Ant

Ant Overview: Writing Own Task

Create a Java class that extends org.apache.tools.ant.Task


For each attribute, write a setter method that is
public void and takes a single argument
Write a public void execute() method, with no
arguments, that throws a BuildException -- this
method implements the task itself

Ant Overview: Properties

Special task for setting up build file properties:


Example:
<property name=src value=/home/src/>
Can use ${src} anywhere in build file to denote
/home/src
Ant provides access to all system properties as if
defined by the <property> task

Ant Overview: Path Structures

Ant provides means to set various environment


variables like PATH and CLASSPATH.
Example of setting CLASSPATH:
<classpath>
<pathelement path="${classpath}"/>
<pathelement location="lib/helper.jar"/>
</classpath>

Command Line Arguments

-buildfile buildfile specify build file to use


targetname specify target to run (instead of
running default)
-verbose, -quiet, -debug Allows control
over the logging information Ant outputs
-logger classname Allows user to specify
their own classes for logging Ant events

IDE Integration

Eclipse, NetBeans, JBuilder, VisualAge, and


almost any other Java IDE has Ant integration
built-in to the system
Refer to each IDEs documentation for how to
use Ant with that IDE

Web Development with Ant

Tomcat comes with special Ant tasks to ease


Web application development and deployment
Copy $TOMCAT_HOME/server/lib/catalina-ant.jar to
$ANT_HOME/lib

Ant tasks for Tomcat:


- install
- reload
- deploy
- remove

Documentation/References

Download: http://ant.apache.org/bindownload.cgi
User Manual: http://ant.apache.org/manual/index.html
Suns Web development tutorial (Ant and JSPs):
http://java.sun.com/webservices/docs/1.2/tutorial/doc/GettingStarted3.html

Java Development with Ant, by Erik Hatcher


and Steve Loughran

You might also like