Ant Technology

The ITAG Release Process heavily leverages Ant technology.  Ant is a Java-based Apache project designed to provide a robust alternative to creating ‘make files’.  Since its inception, it has grown to become the de facto standard for crafting build scripts.  In order to integrate with the ITAG Release Process, a project must incorporate Ant build files into its TeamForge SVN repository as described in the section Ant Integration Details.  This is true for all projects, not just Java projects.  If a project already has an Ant build script it can choose to leverage it for ITAG integration provided the proper modifications are made as described in Ant Integration Details.

Ant Integration Details

As mentioned previously, the new ITAG release process is based on Ant technology for much of its building and deploying.  Specifically, the ITAG scripts require that each project include itag-build.xml and itag-build.properties Ant build files in its top-level directory.  The files must use these exact names and they must be in the top-level directory or the ITAG scripts will not be able to find them. The project itag-build.xml file must define and implement a target named “itag.build”.  This is the target that will be called by the ITAG scripts and is responsible for compiling and packaging all deployable components.  This target must run successfully without the aid of external dependencies such as IDE libraries or Tomcat libraries since these will not exist on the build server.  Since platform libraries are required for compilation the ITAG build environment has designed a method for accessing them.  In order for a project to access platform libraries at build time, the project must specify which version of the ITAG platform it requires for building.  This is done by adding the variable itag.platform.version to its itag-build.properties file.

Just before the ITAG build script invokes itag.build, it checks itag-build.properties for the project’s required platform version and ensures that it is available via the Ant <path> refid itag.platform.path.  After the ITAG build script runs itag.build it will search the designated ‘out’ directory for deployable components and deploy any that it finds to the server. This means that the itag.build target must ensure that all deployable components are copied to the ‘out’ directory before it exits. The ‘out’ directory is provided by the ITAG build environment as the Ant variable ‘itag.out.directory’.

Project build scripts must ensure that as part of their itag.build implementation they do not access resources above their project root directory. In addition, the ITAG build scripts reserve the use of the “itag” and “-itag” prefixes for all targets and variables so project build scripts must also ensure they do not define any additional targets or variables using these prefixes.