= Ant = We use Ant 1.7.1 == Project Build File == Each project must include an Ant {{{build.xml}}} file capable of building the entire project. The {{{build.xml}}} file must include the following targets: * '''all''' (default target) . Must depend on {{{release}}}. If the module contains anything not distributed with {{{release}}} target that must be build as well. As a rule of thumb this target should ''"do what I need"''. * '''clean''' . Delete all compiled Java classes bu recursively calling clean targets in modules * '''compile''' . Compile all Java classes by recursively calling compile targets in modules * '''distclean''' . Restore module to Subversion status - ie. remove all non version controlled files by recursively calling distclean targets in modules * '''doc''' . Compile Java doc and other documentation. * '''release''' . Compile a module release as specified in the [[ModuleReleaseStructure| module release structure]]. ''This target must depend on'' {{{distclean}}}, {{{release.bin}}}, {{{release.doc}}}, and {{{release.src}}} * '''release.bin''' . Create a binary release. Distribution packages should go into the {{{dist/}}} directory. See [[ModuleReleaseStructure| module release structure]]. * '''release.doc''' . Create a Javadoc distribution of the module. Distribution packages should go into the {{{dist/}}} directory. See [[ModuleReleaseStructure| module release structure]]. * '''release.src''' . Create a source distribution of the module. Distribution packages should go into the {{{dist/}}} directory. See [[ModuleReleaseStructure| module release structure]]. * '''test''' . Run all unit tests by recursively calling test targets in all modules * '''war''' . Optional. Create a war file for the project == Module Build File == Each module must include an Ant {{{build.xml}}} file capable of building the entire module. However the code should be organised to be compilable from IDEA as well as Ant. The {{{build.xml}}} file must include the following targets: * '''clean''' . Delete all compiled Java classes * '''distclean''' . Restore module to Subversion status - ie. remove all non version controlled files * '''depends''' . Run the jar targets in all depending modules * '''compile''' . Compile all Java classes. Compiled classes should go into the {{{classes/}}} directory. * '''jar''' . Roll {{{.jar}}} file(s) from compiled classes. Compiled jar files should go into the {{{dist/}}} directory. * '''test''' . Run all unit tests * '''war''' . Optional. Bundle the module as a webservice.