ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Antoine Levy Lambert <>
Subject [POLL] Rewriting Ant's self description
Date Sun, 07 Feb 2010 02:44:17 GMT

The self description of Ant on the home page might not have changed 
since the first release in 2000.  I have just written a draft for a new 
version (see below).

Let me know what you think.


What is Ant

Ant is a Java library and command line tool. Ant's mission is to 
schedule processes described in build files as targets and extension 
points dependent upon each other. The main known usage of Ant is the 
build of java applications, for which Ant supplies a number of built-in 
tasks allowing to compile, assemble, test and run java applications. Ant 
can also be used effectively to build non java applications, for 
instance C or C++ applications. More generally, Ant can be used to 
schedule any type of process which can be described in terms of targets 
and tasks.

Ant is written in Java. Users of Ant can develop their own antlibs 
containing Ant tasks and types, and are offered a large  number of 
ready-made commercial or open source antlibs.

Ant is extremely flexible and does not impose coding conventions or 
directory layouts to the Java projects which adopt it as a build tool.

Software development projects looking for a solution combining build 
tool and dependency management can use Ant in combination with Ivy.

Alternatives to Ant

When Ant was first released in July 2000, Ant compared itself to Make, 
the usual command line tool used to build software, probably still the 
most common solution to build C applications. Make is extensible too, 
but only by writing shell-scripts or executable programs that Make can 
execute. Makefiles are syntactically difficult to write and sensitive to 
invisible or little noticeable characters such as spaces ...

Currently, in the Java world, one of the most famous alternatives to Ant 
is Maven. Maven defines itself with a wider scope than Ant as a project 
management tool. Maven provides built-in build, packaging, testing and 
running capabilities, and tools to create a website and project metrics. 
Java projects adopting Maven as a project management tool are given some 
conventions to follow, particularly concerning the layout of source and 
test directories. These conventions can be overriden by configuration. 
Maven also integrates dependency management and the maven team maintains 
a public repository containing a large number of artifacts. Maven 
implements a predefined build cycle containing predefined phases and goals.

A recent, and worth mentioning alternative to Ant is Gradle, a new tool 
which allows to write build files in Groovy, which a lot of people feel 
is easier and more expressive than the traditional Ant XML. One nice 
thing for Ant is that Gradle is actually built on top of Ant and Ivy, so 
our tasks and types are used inside Gradle.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message