<?xml version="1.0"?> <!-- * build.xml * * Copyright: 2000 Regents of the University of California * * '$Author: sgarg $' * '$Date: 2006-08-18 21:44:45 $' * '$Revision: 1.9 $' --> <project name="utilities" default="usage" basedir="."> <target name="usage" depends="init"> <exec executable="ant" dir="." vmlauncher="false"> <arg line=" -projecthelp"/> </exec> </target> <target name="config"> <property name="installdir" value="dist" /> <property name="debuglevel" value="100"/> <!-- set the test that you want to run here --> <property name="testtorun" value="MonarchUtilTest.java"/> </target> <target name="init" depends="config"> <property name="name" value="utilities"/> <property name="Name" value="Utilities"/> <property name="release" value="0.0.0"/> <filter token="release" value="${release}"/> <property name="srcdir" value="src/main/java" /> <property name="libdir" value="lib" /> <property name="testdir" value="src/test/java" /> <property name="build.dir" value="./build"/> <property name="build.src" value="${build.dir}/src"/> <property name="build.dest" value="${build.dir}/classes"/> <property name="build.docs" value="${build.dir}/docs"/> <property name="build.samples" value="${build.dir}/samples"/> <property name="build.tests" value="${build.dir}/tests"/> <property name="build.data" value="${build.dir}/data"/> <property name="build.lib" value="${build.dir}/lib"/> <property name="build.javadocs" value="${build.dir}/docs/api"/> <property name="package.home" value="edu/ucsb/nceas" /> <property name="dist.dir" value="dist"/> <property name="ver.dir" value="${dist.dir}/${name}-${release}"/> <property name="ver.src" value="${ver.dir}/src"/> <filter token="debuglevel" value="${debuglevel}"/> <filter token="installdir" value="${installdir}"/> <filter token="name" value="${name}"/> <!-- classpath jar files (including relative path from basedir) --> <property name="xmlapijar" value="${libdir}/xml-apis.jar" /> <property name="xalanjar" value="${libdir}/xalan.jar" /> <!-- <property name="extresjar" value="${libdir}/ExternalResources.jar" /> --> <property name="xercesjar" value="${libdir}/xercesImpl.jar" /> <property name="log4jjar" value="${libdir}/log4j-1.2.8.jar" /> <property name="httpjar" value="${libdir}/httpclient.jar" /> <property name="commonsiojar" value="${libdir}/commons-io-1.4.jar" /> <property name="junitjar" value="${libdir}/junit-4.8.1.jar" /> <!-- for pdf export --> <property name="serializer" value="lib/serializer.jar"/> <property name="xml-apis" value="lib/xml-apis-xerces-2.9.1.jar"/> <property name="itext" value="lib/iText-2.0.8.jar"/> <property name="renderer" value="lib/core-renderer.jar"/> <property name="renderer-min" value="lib/core-renderer-minimal.jar"/> <property name="jtidy" value="lib/jtidy-r938.jar"/> <!-- CLASSPATH --> <property name="cpath" value="${xercesjar}:${log4jjar}:${httpjar}:${xalanjar}:${xmlapijar}:${junitjar}:${commonsiojar}:${serializer}:${xml-apis}:${jtidy}:${itext}:${renderer}:${renderer-min}" /> <echo message="classpath is: ${cpath}"/> </target> <target name="prepare" depends="init"> <mkdir dir="${build.dir}"/> <mkdir dir="${build.src}"/> <mkdir dir="${build.dest}"/> <mkdir dir="${build.lib}"/> <copy todir="${build.src}" filtering="yes"> <fileset dir="${srcdir}"> <include name="**/*.java"/> <include name="edu/**"/> <include name="com/**"/> <include name="org/**"/> <exclude name="**/CVS*"/> <exclude name="**/.#*"/> <exclude name="**/*.sql"/> </fileset> </copy> </target> <target name="compile" depends="prepare" description="compiles all the java classes"> <javac srcdir="${build.src}" destdir="${build.dest}" classpath="${cpath}" debug="on"/> </target> <target name="jar" depends="compile" description="compiles and jars all the java classes"> <delete file="${build.dir}/${name}.jar" /> <copy todir="${build.dest}/${package.home}/${name}" filtering="no"> <fileset dir="${srcdir}/${package.home}/${name}"> </fileset> </copy> <jar jarfile="${build.dir}/${name}.jar"> <fileset dir="${build.dest}"> <include name="${package.home}/${name}/**" /> <exclude name="**/*.java"/> </fileset> </jar> </target> <target name="install" depends="jar"> <mkdir dir="${installdir}" /> </target> <target name="jdoc" depends="init,prepare" description="creates javadoc documentation for all the java classes"> <mkdir dir="${build.javadocs}" /> <javadoc packagenames="edu.ucsb.nceas.*" sourcepath="src" destdir="${build.javadocs}" author="true" version="true" use="true" windowtitle="${Name} API" doctitle="<h1>${Name}</h1>" bottom="<i>Copyright © 2000 National Center for Ecological Analysis and Synthesis. All Rights Reserved.</i>"> <fileset dir="${build.src}"> <include name="**/*.java"/> <exclude name="**/CVS*"/> <exclude name="**/.#*"/> </fileset> </javadoc> </target> <target name="clean" depends="init" description="deletes everything in the build directory"> <delete dir="${build.dir}" /> </target> <target name="buildtestjar" depends="clean,compile" description="copy and compile the tests into a jar file"> <mkdir dir="${build.tests}"/> <copy todir="${build.tests}" filtering="yes"> <fileset dir="${testdir}"> <include name="**/*.java"/> <include name="**/*.xml"/> <exclude name="**/CVS*"/> <exclude name="**/.#*"/> </fileset> </copy> <javac srcdir="${build.tests}" destdir="${build.dest}" classpath="${cpath}" debug="on"/> <jar jarfile="${build.dir}/${name}-test.jar" basedir="${build.dest}"> <fileset dir="${testdir}"> <include name="${package.home}/${name}/**" /> <exclude name="**/*.java"/> </fileset> </jar> </target> <target name="test" depends="buildtestjar" description="run all JUnit tests"> <!-- use the ant "junit" task to run JUnit tests. --> <junit printsummary="withOutAndErr" haltonfailure="yes" fork="no" haltonerror="yes" newenvironment="true"> <classpath> <pathelement path="${cpath}:${build.dir}/${name}-test.jar:${build.dir}/classes" /> </classpath> <formatter type="plain" usefile="false"/> <batchtest fork="true" todir="${build.dir}"> <fileset dir="${build.dest}"> <include name="**/*Test.class" /> </fileset> </batchtest> </junit> </target> <!-- run one test --> <target name="onetest" depends="buildtestjar" description="target to run only ONE of the junit tests - you will be prompted for the class name"> <input message="Enter test class name (e.g. MyClassTest)" addproperty="test.class"/> <junit printsummary="withOutAndErr" haltonfailure="true" fork="true" haltonerror="true" newenvironment="true"> <classpath> <pathelement path="${cpath}" /> <pathelement path="${build.dir}/${name}-test.jar" /> <pathelement path="${build.dir}/classes" /> </classpath> <formatter type="plain" usefile="false"/> <batchtest fork="true" todir="${build.dir}"> <fileset dir="${build.dest}"> <include name="**/${test.class}.class" /> </fileset> </batchtest> </junit> </target> <target name="dist" depends="jar,jdoc" description="jar all class files and documentation for distribution"> <mkdir dir="${dist.dir}"/> <delete dir="${ver.dir}" /> <mkdir dir="${ver.dir}"/> <copy todir="${ver.dir}"> <fileset dir="." excludes="**/CVS* **/.#* **/src* **/test* **/build* **/docs* ${dist.dir}"/> </copy> <copy todir="${ver.dir}" file="build.xml"/> <copy todir="${ver.dir}/lib" file="${build.dir}/${name}.jar"/> <copy todir="${ver.dir}/docs" filtering="yes" failonerror="false"> <fileset dir="docs" excludes="**/*gif **/*jpg **/*png" /> </copy> <copy todir="${ver.dir}/docs" filtering="no" failonerror="false"> <fileset dir="docs" includes="**/*gif **/*jpg **/*png" /> </copy> <copy todir="${ver.dir}/docs/dev"> <fileset dir="${build.dir}/docs"/> </copy> <copy todir="${ver.dir}/src"> <fileset dir="${build.dir}/src"/> </copy> <delete dir="./${ver.dir}/${build.dir}"/> <delete dir="./${ver.dir}/dist"/> <delete file="./${name}-${release}.zip"/> <zip zipfile="./${name}-${release}.zip" basedir="${dist.dir}" excludes="${name}-${release}/src/**, ${name}-${release}/build/src/**"/> <delete file="./${name}-${release}.tar.gz" /> <tar tarfile="./${name}-${release}.tar" basedir="${dist.dir}" excludes="${name}-${release}/src/**, ${name}-${release}/build/src/**"/> <gzip zipfile="./${name}-${release}.tar.gz" src="./${name}-${release}.tar"/> <delete file="./${name}-${release}.tar" /> </target> <target name="distsrc" depends="dist" description="jar all source files for distribution"> <mkdir dir="${ver.src}"/> <copy todir="${ver.src}"> <fileset dir="./src"/> </copy> <delete file="./${name}-src-${release}.zip"/> <zip zipfile="./${name}-src-${release}.zip" basedir="${dist.dir}"/> <delete file="./${name}-src-${release}.tar.gz" /> <tar tarfile="./${name}-src-${release}.tar" basedir="${dist.dir}"/> <gzip zipfile="./${name}-src-${release}.tar.gz" src="./${name}-src-${release}.tar"/> <delete file="./${name}-src-${release}.tar" /> <delete dir="${dist.dir}"/> </target> </project>