<?xml version="1.0"?>
<project
name="The Build System Formerly Known As Jeff's">
<info
version="1.0"
web="http://opensource.socialchange.net.au/build/"/>
<developers>
<person name="Jeff Turner" email="jeff@socialchange.net.au" id="JT"/>
</developers>
<description>
<short>A generic build system, capable of building a wide variety of projects.</short>
<detailed>
<pre><![CDATA[
Many Java projects have similar needs from their build system. Compile
the code, create a jar, javadocs, distributions, run junit tests, etc.
This build system is designed to handle a basic set of such activities.
]]>
</pre></detailed>
</description>
<dirstruct>
<dir name="/">
project root
<file name="build.xml">Generic Ant build file</file>
<file name="dependencies.xml">Ant file for updating dependencies</file>
<dir name="lib">compile-time jar dependencies for src/java</dir>
<dir name="src">
anything that will end up in the final product
<dir name="java">
java code
<file name="foo">a file called foo</file>
</dir>
<dir name="lib">runtime jar dependencies of src/java</dir>
<dir name="etc">
misc files
<file name="Manifest.mf">Manifest to be used in jars</file>
</dir>
</dir>
</dir>
</dirstruct>
<features>
<feature ID="unittest">
<description>Unit testing support</description>
</feature>
<feature ID="clean">
<description>A 'clean' target which removes the generated files from the last build</description>
</feature>
<feature ID="ctags">
<description>
When building, the 'ctags' command will automatically be run.
'ctags' builds a cross-reference of all function and variable
definitions in the code, allowing for rapid navigation if you
have a ctags-supporting editor.
</description>
</feature>
<feature ID="license">
<description>
Support for a 'licenses' directory, whose contents will be
bundled with distributions.
</description>
</feature>
<feature ID="dependencies">
<description>
Add a 'dependencies.xml' build script, which automatically
updates dependency jars. Doesn't work very well..
</description>
</feature>
<feature ID="docs">
<description>Support for building documentation.</description>
</feature>
<feature ID="generated_by">
<description>
Make generated build files include a logo, saying "Generated by
ANTHEAP" or something like that.
</description>
</feature>
</features>
<properties>
<property ID="copyright">
<description>
Whenever a copyright statement should be assigned, this text
will be used if defined.
</description>
<defaultvalue>Copyright blah blah</defaultvalue>
</property>
<property ID="packagename">
<description>
The primary Java package name for your classes.
</description>
<defaultvalue>net.socialchange.template</defaultvalue>
</property>
<property ID="packagedir">
<description>
The primary Java package directory for your classes.
</description>
<defaultvalue>net/socialchange/template</defaultvalue>
</property>
<property ID="propfile">
<description>
Determines what to call the properties file associated with the build system. Popular choices include .ant.properties, ant.properties and build.properties
</description>
<optionlist>
<option>
build.properties
</option>
<option default="true">
.ant.properties
</option>
<option>
ant.properties
</option>
</optionlist>
</property>
</properties>
<profiles>
<profile ID="minimal" default="true">
<description>The bare minimum</description>
<features IDREF="clean"/>
<properties>
<property IDREF="copyright">bob</property>
<property IDREF="propfile">.ant.properties</property>
</properties>
</profile>
<profile ID="normal">
<description>Normal</description>
<features IDREF="clean ctags license dependencies docs generated_by"/>
</profile>
<profile ID="unit_testing">
<description>With unit testing</description>
<features IDREF="unittest clean ctags license dependencies docs generated_by"/>
</profile>
<profile ID="cocoon">
<description>With a cocoon-based xdocs system</description>
<features IDREF="unittest clean ctags license dependencies docs generated_by"/>
</profile>
</profiles>
</project>