Q:

How to use Ant?

I've been trying to understand what Ant is used for but i still don't get it. 
Can someone give me one use case for which Ant is used for, something I can try to see why Ant is useful and what kind of things I can use it for?
I do Java development in Eclipse and I'm just getting started with servlets and Google Web Toolkit.

A:

Ant is a build tool.  Say for example you have several projects in your Eclipse workspace, all of which are pieces of a larger application.  To build it all into a jar file with dependencies included, you could select all the projects and export them as a jar file, but that's somewhat cumbersome.
Ant is an extensible solution.  You define the build process in XML, and ant compiles your java files according to this recipe.
Ant can do more than building, too.  I worked at a company where the mechanism for deployment was Debian packages in our own repository.  We had Ant scripts that would build the jar files, arrange them and some metadata files into a Debian package, put them into the repository, and re-generate the repository manifest.
As with anything Java, there's a lot of configuration you need to get your head around before you're proficient with Ant, but some of the basic tutorials should give you an idea of what you're getting yourself into.

A:

Ant is used, as any build tool is, to automate the repetitive tasks of building your code.
Rather than run javac each time by hand you put a command into an Ant script and then when you run ant it will run javac for you.
My typical build process with ant goes something like this:

run javac on the source
run javac on the tets
run the cobertura instrumentation on the source (this is for code coverage)
jar up the classes from the source
jar up the cobertura instrumented classes 
jar up the unit test classes
run checkstyle, pmd, findbugs on the source to find warnings
run the unit tests via cobertura to get code coverage of them

So that is 8 steps that I have done on each build that I can do simply by running "ant".

