HomeDownloadsUser GuideDevelopmentLegal

Development: Build Environment

Overview

Instead of some variant of the make utility the Java based Ant tool is used as build tool within this project. See the build tools page for more information on Ant. There is a so-called build file (named build.xml) for building and running parts of the project.

Due to the fact that Ant always has to be configured (e.g. by environment variables) and enriched by additional libraries (such as a XSLT processor or additional tasks as XDoclet) a complete Ant runtime environment is included in the project directory. In the tools directory the Jar archives of Ant, the used XSLT processor and all needed additional tasks are located. To start Ant there is a script in the top level directory of the project (build.sh for Unix/Mac OS X and build.cmd for Windows). This script is not named ant to prevent naming conflicts with other versions of Ant that are already installed on your system.

Available Targets

The available targets and their descriptions is listed in the following table, but it can also be printed by running build -projecthelp.

Main Targets (build.xml)

Provides the main targets and serves as a shell for the task specific target build files.

Target Description
clean Removes all build artifacts.
demo Runs the demo application.
world Builds the complete project.

Auditing Targets (target/audit.xml)

Provides auditing targets.

Target Description
audit Creates all auditing information available.
audit.checkspace Checks spacing of all source files.

Compile Targets (target/compile.xml)

Provides compilation targets for all the build artifacts in this project.

Target Description
compile Compiles all sources of the project.
compile.custom Compiles the custom demo application.
compile.demo Compiles the demo application.
compile.drivers Compiles the JavaDoc drivers.
compile.regex Compiles the regex demo application.
compile.shared Compiles the shared sources.
compile.tests Compiles the unit tests.

Distribution Targets (target/dist.xml)

Provides targets to build the distributable project artifacts.

Target Description
dist Builds the complete project distribution.
dist.clean Removes all build and distribution artifacts.
dist.demo Builds all demo applications.
dist.lib Builds the project libraries.
dist.src Creates the source code distribution archives.

Documentation Targets (target/doc.xml)

Provides targets to build the project documentation and update the changelog.

Target Description
doc Creates the project documentation.
doc.change Interactively adds change entries to the changelog.
doc.site Creates the project site documentation.

JavaDoc Targets (target/javadoc.xml)

Provides targets to build various JavaDoc documentations, that's what the Taglets Collection is all about anyway...

Target Description
javadoc Creates the project JavaDoc documentation.
javadoc.j2se14 Creates the JavaDoc documentation for J2SE14.
javadoc.j2se15 Creates the JavaDoc documentation for J2SE15.
javadoc.j2se16 Creates the JavaDoc documentation for J2SE16.

Tag Targets (target/tag.xml)

Generates taglet configurations for known tag tools.

Target Description
tag.config Generates the tag tool configurations.

Checkstyle Targets (tool/audit/checkstyle/ant.xml)

Target Description
audit.checkstyle Creates a checkstyle auditing report.

Cobertura Targets (tool/audit/cobertura/ant.xml)

Target Description
audit.coverage Creates a coverage report.

JUnit Targets (tool/audit/junit/ant.xml)

Target Description
audit.test Runs the project unit tests and creates a report.

MurImages Targets (tool/build/murimages/ant.xml)

Target Description
murimages Launches Mur d'Images

XDoclet Targets (tool/tag/xdoclet/ant.xml)

Target Description
xdoclet.sync Synchronizes the XDoclet tags (requires 'xdoclet.sync.dir').

Configurability of the Build Process

Besides the main build file build.xml sources a couple of support files in the following order:

  1. env/user.xml containing user specific settings.
  2. env/site.xml containing site settings.
  3. env/defaults.xml containing project defaults.

Ant uses always the first definition of a variable it encounters. Therefore the above list suggests that user settings in env/user.xml override site specific settings in env/site.xml, and site settings override the project defaults in env/defaults.xml.

Checkout the Development Setup page for more information about configuring your build environment.