Newer
Older
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE project>
<project name="uws" basedir="." default="buildLib">
gmantele
committed
<property name="version" value="4.1" />
<property name="srcDir" value="src" />
gmantele
committed
<property name="libDir" value="lib" />
<property name="compileDir" value="antBuild" />
<property name="classesDir" value="${compileDir}"/>
<property name="javadocDir" value="javadoc/uws" />
gmantele
committed
<property name="cosJarName" value="cos-1.5beta.jar" />
<property name="cosJar" value="${libDir}/${cosJarName}" />
<property name="uwsPath" value="uws/**" />
<property name="jsonPath" value="org/json/**" />
gmantele
committed
<property name="licensePath" value="COPYING.LESSER" />
<property name="extLibsPath" value="com/oreilly/servlet/**" />
<property name="includesList" value="${uwsPath},${jsonPath},${extLibsPath}" />
<property name="jarDest" value="." />
<property name="libJarFile" value="${jarDest}/uws_${version}.jar" />
<property name="srcJarFile" value="${jarDest}/uws_src_${version}.jar" />
<property name="javadocJarFile" value="${jarDest}/uws_javadoc_${version}.jar" />
<property name="testsDir" value="test" />
<property name="junitReportsDir" value="reports/uws" />
<fail message="The property SERVLET-API must be set! It provides the path toward a directory or a JAR which contains all classes inside javax.servlet.">
<condition><not><isset property="SERVLET-API"/></not></condition>
</fail>
<!-- CLASSPATHS -->
<path id="uws.classpath">
gmantele
committed
<pathelement location="${cosJar}" />
<pathelement location="${SERVLET-API}" />
</path>
<path id="junit.class.path">
<path refid="uws.classpath" />
<pathelement path="${JUNIT-API}" />
<pathelement location="bin" />
</path>
<echo>UWS LIBRARY VERSION = ${version}</echo>
<!-- BUILD ALL TASK -->
<target name="buildAll" depends="buildLibAndSrc,buildJavadoc"
description="Build three JARs: the library (classes), its sources and its Javadoc. Then, except the JAR, all the compiled javadoc files are deleted." >
<antcall target="cleanJavadocBuild" />
</target>
<target name="cleanAll" depends="clean,cleanJavadoc,cleanJUnitReports" description="Delete all files generated by this ANT file for the set version." />
<!-- JUNIT VALIDATION -->
<target name="cleanJUnitReports" description="Clean the JUnit reports directory of the UWS library ONLY.">
<delete dir="${junitReportsDir}" failonerror="false" />
</target>
<target name="junitValidation" depends="cleanJUnitReports" description="Executes all JUnit tests before building the library and stop ANT at any error.">
<mkdir dir="${junitReportsDir}"/>
<junit errorproperty="uwsTestsFailure" failureproperty="uwsTestsFailure">
<classpath refid="junit.class.path" />
<formatter type="brief" usefile="yes" />
<batchtest todir="${junitReportsDir}">
<fileset dir="${testsDir}" includes="uws/**/Test*.java" />
</batchtest>
</junit>
<fail if="${uwsTestsFailure}" message="Failed JUnit validation for UWS Lib.!" />
</target>
<!-- LIB & SOURCES -->
<target name="clean" description="Delete the JARs for the library (classes) and for its sources for the set version.">
<delete file="${libJarFile}" failonerror="false" />
<delete file="${srcJarFile}" failonerror="false" />
<delete dir="${compileDir}" failonerror="false" />
</target>
<target name="compileLib" depends="clean,junitValidation" description="Build all the classes of the UWS library. This target is particularly usefull because it lets highlighting missing dependencies.">
<mkdir dir="${compileDir}" />
<javac destdir="${compileDir}" srcdir="${srcDir}" includes="${includesList}" includeantruntime="false" encoding="utf8">
<classpath refid="uws.classpath" />
</javac>
</target>
<target name="buildLib" depends="compileLib" description="After 'clean', build the library JAR (only classes).">
<echo>Generate the library:</echo>
gmantele
committed
<jar basedir="${classesDir}" destfile="${libJarFile}" includes="${includesList}">
<zipfileset src="${cosJar}" excludes="META-INF/*" />
<zipfileset dir="src" includes="${licensePath}" />
</jar>
<delete dir="${compileDir}" failonerror="true" />
</target>
<target name="buildLibAndSrc" depends="buildLib" description="After 'clean' and 'buildLib', build the sources JAR (only .java).">
gmantele
committed
<jar compress="false" destfile="${srcJarFile}">
<zipfileset dir="${srcDir}" includes="${includesList},${licensePath}" prefix="${srcDir}" />
<zipfileset dir="${libDir}" includes="${cosJarName}" fullPath="${cosJar}" />
</jar>
</target>
<!-- JAVADOC -->
<target name="cleanJavadocBuild" description="Delete the whole generated/compiled Javadoc directory.">
<delete dir="${javadocDir}" failonerror="false" />
</target>
<target name="cleanJavadoc" depends="cleanJavadocBuild" description="Delete the Javadoc JAR AND the whole generated/compiled Javadoc directory.">
<delete file="${jarDest}/${javadocJarFile}" failonerror="false" />
</target>
<target name="compileJavadoc" depends="cleanJavadoc" description="After 'cleanJavadoc', compile the whole Javadoc.">
<javadoc access="protected" author="true" destdir="${javadocDir}" nodeprecated="false" nodeprecatedlist="false" noindex="false" nonavbar="false" notree="false" source="1.7" splitindex="true" use="true" version="true">
<packageset dir="${srcDir}" includes="${includesList}" />
<classpath refid="uws.classpath" />
</javadoc>
</target>
<target name="buildJavadoc" depends="compileJavadoc" description="After 'compileJavadoc', build the Javadoc JAR.">
<jar destfile="${javadocJarFile}" basedir="${javadocDir}" />
</target>
</project>