Wednesday, April 12, 2006

Presentation Ant

Topic


I have been asked to give a beginner to mid-level user overview of the Apache Ant project to a group of programmers. Having used and benefited from Ant on current and past development projects, the topic itself is well-known to me.

The presentation will be done in conjunction with another presenter who will be showing testing tools like Clover and jUnitReports. It will be my task to segue from Ant to these testing tools at the end of the presentation.

I plan to cover:
* The basics of Ant
* Power tools
* Best practices
* Calling external tasks like Clover - segue to next presenter.

The challenge here will be to add some life to the project. We are used to the standard powerpoint presentation that tends to be dry, boring and hynosis inducing. I'll be searching for some humorous or interesting material to help make the points. Any ant related anecdotes are always certainly welcome.

What is Ant?


From the Apache Ant website:
Apache Ant is a Java-based build tool. In theory, it is kind of like Make, but without Make's wrinkles.

Why another build tool when there is already make, gnumake, nmake, jam, and others? Because all those tools have limitations that Ant's original author couldn't live with when developing software across multiple platforms. Make-like tools are inherently shell-based -- they evaluate a set of dependencies, then execute commands not unlike what you would issue in a shell. This means that you can easily extend these tools by using or writing any program for the OS that you are working on. However, this also means that you limit yourself to the OS, or at least the OS type such as Unix, that you are working on.

Makefiles are inherently evil as well. Anybody who has worked on them for any time has run into the dreaded tab problem. "Is my command not executing because I have a space in front of my tab!!!" said the original author of Ant way too many times. Tools like Jam took care of this to a great degree, but still have yet another format to use and remember.

Ant is different. Instead of a model where it 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 where various tasks get executed. Each task is run by an object that implements a particular Task interface.

0 Comments:

Post a Comment

<< Home