<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="./tools/antipede/resources/stylesheets/layout.xsl"?> <!DOCTYPE project [ <!-- antipede --> <!ENTITY import-antipede SYSTEM "./tools/antipede/build.xtarget"> <!ELEMENT project ANY> <!ATTLIST project default CDATA #REQUIRED basedir CDATA #IMPLIED name CDATA #IMPLIED> ]> <project default="interactive" basedir="." name="project build file"> <description> * ===================================== * | Krysalis Centipede Build System | * ===================================== * by Nicola Ken Barozzi (nicolaken@apache.org) Marc Johnson (mjohnson@apache.org) For a simple interactive build, simply run the build script (build.bar or build.sh) </description> <!-- =================================================================== --> <!-- Basic build targets for the project --> <!-- =================================================================== --> <!-- =================================================================== --> <!-- Interactive build --> <!-- =================================================================== --> <target name="interactive" description="Interactive Build" depends="-init"> <echo> -------------------------------------------------------------- ${xgump.module.project.name} ${xgump.module.project.version.major}.${xgump.module.project.version.minor} [${YEAR}] -------------------------------------------------------------- Using ${ant.version} Build file ${ant.file} -------------------------------------------------------------- These are the most common build targets. You can also invoke them directly; see build.xml for more info. Builds will be in /build directory, distributions in /dist. all -------------- creates the jars and the site compile ---------- compiles the source code test ------------- performs the jUnit tests jar -------------- create the jar files docs ------------- generates the html docs - clean not needed javadocs --------- generates the API documentation site ------------- generates the html site (docs+reports) clean ------------ cleans the build directory dist ------------- creates src and bin distributions scratchpad ------- build-run scratchpad code contrib ---------- build-run contributed code generate-records - generate excel records generate-types --- generate word types </echo> <property name="input.selection" value="all"/> <centipede-user-input name="input.selection">Please select a target </centipede-user-input> <antcall target="call-cent"> <param name="cent-name" value="centipede"/> <param name="cent-target" value="splash"/> </antcall> <antcall target="${input.selection}"/> </target> <!-- =================================================================== --> <!-- Interactive scratchpad builds --> <!-- =================================================================== --> <target name="scratchpad" depends="compile" description="Interactive Scratchpad Build"> <echo> -------------------------------------------------------------- ${xgump.module.project.name} ${xgump.module.project.version.major}.${xgump.module.project.version.minor} SCRATCHPAD -------------------------------------------------------------- Building with ${ant.version} using build file ${ant.file} -------------------------------------------------------------- These are SCRATCHPAD BUILDS. They are not guaranteed to work. You have been warned. - - - - - - </echo> <property name="input.selection" value=""/> <centipede-user-input name="input.selection">Please select a target </centipede-user-input> <ant antfile="${xlayout.source.scratchpad.targets.dir}/${input.selection}/xbuild.xml"/> </target> <!-- =================================================================== --> <!-- Interactive contrib builds --> <!-- =================================================================== --> <target name="contrib" depends="compile" description="Interactive Contributors' Build"> <echo> -------------------------------------------------------------- ${xgump.module.project.name} ${xgump.module.project.version.major}.${xgump.module.project.version.minor} CONTRIB -------------------------------------------------------------- Building with ${ant.version} using build file ${ant.file} -------------------------------------------------------------- These are CONTRIB BUILDS. They are not guaranteed to work. You have been warned. poibrowser - POIBrowser 0.10 GUI POI Viewer - - - - - </echo> <property name="input.selection" value="poibrowser"/> <centipede-user-input name="input.selection">Please select a target </centipede-user-input> <ant antfile="${xlayout.source.contributions.targets.dir}/${input.selection}/xbuild.xml"/> </target> <!-- ================================== --> <!-- Compile --> <!-- ================================== --> <target name="compile" depends="-init" description="Compile java source code"> <antcall target="call-cent"> <param name="cent-name" value="centipede"/> <param name="cent-target" value="compile"/> </antcall> </target> <!-- ================================== --> <!-- Build jars --> <!-- ================================== --> <target name="jar" depends="-init" description="Compile java source code"> <antcall target="call-cent"> <param name="cent-name" value="centipede"/> <param name="cent-target" value="package"/> </antcall> </target> <!-- ====================================== --> <!-- dist target wo single build checks --> <!-- ====================================== --> <target name="dist" depends="-init, clean, test, jar, site" description="Build distribution packages wo single build checks"> <antcall target="call-cent"> <param name="cent-name" value="centipede"/> <param name="cent-target" value="dist"/> </antcall> </target> <!-- ================================== --> <!-- Clean build dir --> <!-- ================================== --> <target name="clean" depends="-init" description="Compile java source code"> <antcall target="call-cent"> <param name="cent-name" value="centipede"/> <param name="cent-target" value="clean"/> </antcall> </target> <!-- ================================== --> <!-- Run Junit tests --> <!-- ================================== --> <target name="test" depends="-init, compile" description="Compile java source code"> <antcall target="call-cent"> <param name="cent-name" value="junit"/> <param name="cent-target" value="test"/> </antcall> <antcall target="call-cent"> <param name="cent-name" value="junit"/> <param name="cent-target" value="report"/> </antcall> </target> <!-- ================================== --> <!-- Generate project metrics --> <!-- ================================== --> <target name="metrics" depends="-init, compile" description="Generate project metrics"> <antcall target="call-cent"> <param name="cent-name" value="jdepend"/> <param name="cent-target" value="jdepend-html"/> </antcall> </target> <!-- ================================== --> <!-- Generates the documentation --> <!-- ================================== --> <target name="docs" depends="-init" description="Compile java source code"> <antcall target="call-cent"> <param name="cent-name" value="forrest"/> <param name="cent-target" value="docs"/> </antcall> </target> <!-- ================================== --> <!-- Generates the site --> <!-- ================================== --> <target name="site" description="Makes all the site doco" depends="docs, test, javadocs, metrics"/> <!-- ================================== --> <!-- Generates the java docs --> <!-- ================================== --> <target name="javadocs" depends="-init" description="Compile java source code"> <antcall target="call-cent"> <param name="cent-name" value="centipede"/> <param name="cent-target" value="javadocs"/> </antcall> <antcall target="call-cent"> <param name="cent-name" value="umldoclet"/> <param name="cent-target" value="doclet"/> </antcall> </target> <!-- ================================== --> <!-- Check style --> <!-- ================================== --> <target name="checkstyle" depends="-init" description="generate-uml"> <antcall target="call-cent"> <param name="cent-name" value="checkstyle"/> <param name="cent-target" value="check"/> </antcall> </target> <!-- ================================== --> <!-- Generate records --> <!-- ================================== --> <target name="try" depends="-init"> <antcall target="call-cent"> <param name="cent-name" value="javasrc"/> <param name="cent-target" value="javasrc"/> </antcall> </target> <!-- ================================== --> <!-- Generate records --> <!-- ================================== --> <target name="generate-records" depends="-init" description="generate-records"> <ant antfile="${xlayout.source.targets.dir}/record-generation/xbuild.xml" target="generate-records"/> </target> <!-- ================================== --> <!-- Generate types --> <!-- ================================== --> <target name="generate-types" depends="-init" description="generate-types"> <ant antfile="${xlayout.source.targets.dir}/record-generation/xbuild.xml" target="generate-types"/> </target> <!-- ================================== --> <!-- Test the main module stuff --> <!-- ================================== --> <target name="testmodule" depends="clean, docs, compile, test, jar, metrics, javadocs" description="Testing that all major targets work; useful before a commit"/> <!-- ================================== --> <!-- Test the main module stuff 2 --> <!-- ================================== --> <target name="testtargets" description="Testing that all major targets work indipendently; useful before a commit"> <antcall target="clean"/> <antcall target="compile"/> <antcall target="clean"/> <antcall target="test"/> <antcall target="clean"/> <antcall target="jar"/> <antcall target="clean"/> <antcall target="docs"/> <antcall target="clean"/> <antcall target="metrics"/> <antcall target="clean"/> <antcall target="javadocs"/> </target> <!-- ================================== --> <!-- Test 4 distribution --> <!-- ================================== --> <target name="testall" depends="-init" description="Make big full test"> <antcall target="gump"/> <antcall target="quickdist"/> </target> <!-- ================================== --> <!-- Target used by Gump --> <!-- ================================== --> <target name="gump" depends="testmodule" description="Target used by Gump"> <antcall target="testtargets"/> <antcall target="testmodule"/> <antcall target="all"/> </target> <!-- ================================== --> <!-- Generate all --> <!-- ================================== --> <target name="all" depends="-init, jar, site" description="Generate all"/> <!-- ================================== --> <!-- Create a cent.jar package --> <!-- using an already deployed cent --> <!-- ================================== --> <target name="jar-cent" depends="-init" description="Compile java source code"> <antcall target="call-cent"> <param name="cent-name" value="centipede"/> <param name="cent-target" value="jar-cent"/> </antcall> </target> <!-- =================================================================== --> <!-- Import Ant-Centipede -init targets - sets up basic build stuff --> <!-- =================================================================== --> <!-- This is the target that initializes tasks and properties used commonly in every other target. Remember to add depends="-init" to every target, so that this target is called before any other. This target is internal; to make it unusable from the commandline, its name starts with a hyphen. To make it invisible when using -projecthelp, it lacks a description. --> &import-antipede; </project>