Ant Heap Documentation Index

Ant Heap (http://sourceforge.net/projects/antheap) is:

Motivation and intended audience

Say you are working on many small Java projects. They all have similar build system needs, and you don't want to go reinventing a build system for each one.

A solution to this problem is to create just one build system, but design it carefully so that it is as generic as possible. Project-specific customizations should be isolated and kept external to the main system.

In addition, there are large classes of functionality, like unit testing and web application/J2EE support, which certain projects may not need. There should be some way of excluding unneeded functionality.

Antheap, then, is just this; a set of generic build systems, and a generator system for selecting desired functonality for a specific project's build system.

Build systems

Currently, we have two main build systems:

Customized build system generator

From the user's point of view, the main interface is a "web application", through which the user can select features and customizations of the build system they wish to use. Once customized, the build system is generated for the user, and can be downloaded. Alternatively, customizations can be made to properties files by hand, and the generator invoked from the command-line.

Unfortunately being a Java-hosted, the webapp cannot be put online here at Sourceforge. You'll have to download the real thing from CVS. But we can at least show you what it looks like.

Step 1: Select the build system to customize. This lets you choose which build system yours will be based on.

Step 2: Select features and customize the system. This page :

Step 3: Download generated build system

Technical overview

Each build system in Antheap has a system descriptor (see an example), an XML file that describes the build system's capabilities and features. This system descriptor is rendered into an HTML page via an XSLT stylesheet. The user's selections are then turned into Ant properties, and fed into the system generator.

The system generator is conceptually quite simple. The unmodified generic build system is kept in a src/ directory. Then three successive groups of XSLT stylesheets are applied to the build.xml, to add, remove and modify it to meet the user's needs. The whole generation process is done via an Ant script, using the <style> task. Once the modifications are complete, the system is packaged and made available for download to the user.

Status

Antheap is, sad to say, making only slow progress at the moment. It works as advertised, and the build systems on offer are in production use.
Antheap can be compared to the coming wave of second generation build systems like Apache's Maven and the Krysalis Centipede project.

Antheap contains some nice ideas, and if you are looking for a generic build system, and build system generator (perhaps for internal company use), you've come to the right place.

Downloading it

Antheap is best obtained from CVS, via these commands:

	export CVSROOT=":pserver:anonymous@cvs.antheap.sourceforge.net:/cvsroot/antheap"
	export CVS_RSH=ssh
	cvs co antheap

This project is hosted by
SourceForge Logo
Thank you!

Copyright 2001,2002 Rolf F. Katzenberger and Jeff Turner
Last modified $Date: 2002/05/10 13:23:17 $ UTC