Files
samskivert/build.xml
T
samskivert 612040752c Alas, most of the world has moved on from Java 1.5. We will be unable to run
our tests when building samskivert with 1.5 because they depend on hsqldb which
is a 1.6 jar file. The main code base still compiles with a 1.5 compiler, so
there's no need for alarm.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2954 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-11-18 01:25:28 +00:00

149 lines
6.5 KiB
XML

<?xml version="1.0"?>
<project name="samskivert" default="compile" basedir="." xmlns:artifact="urn:maven-artifact-ant">
<!-- various configurations -->
<property name="lib.name" value="samskivert"/>
<property name="src.dir" value="src/main/java"/>
<property name="test.dir" value="src/test/java"/>
<property name="deploy.dir" value="dist"/>
<property name="classes.dir" value="${deploy.dir}/classes"/>
<property name="tclasses.dir" value="${deploy.dir}/test-classes"/>
<property name="javadoc.dir" value="${deploy.dir}/docs"/>
<property name="gwtjar.dir" value="${deploy.dir}/gwt-jar"/>
<property name="maven-ant.vers" value="2.1.1"/>
<property name="maven-ant.dir" value="${user.home}/.m2/ant-support"/>
<property name="maven-ant.jar" value="${maven-ant.dir}/maven-ant-tasks-${maven-ant.vers}.jar"/>
<property name="maven-ant.url" value="http://mirrors.ibiblio.org/pub/mirrors/apache/maven/binaries"/>
<condition property="maven-ant.exists"><available file="${maven-ant.jar}"/></condition>
<target name="-download-maven-ant" unless="maven-ant.exists">
<mkdir dir="${maven-ant.dir}"/>
<get src="${maven-ant.url}/maven-ant-tasks-${maven-ant.vers}.jar"
dest="${maven-ant.jar}" usetimestamp="true"/>
</target>
<target name="-init-maven-ant" depends="-download-maven-ant">
<taskdef resource="org/apache/maven/artifact/ant/antlib.xml"
uri="urn:maven-artifact-ant" classpath="${maven-ant.jar}"/>
<artifact:pom id="pom" file="pom.xml"/>
<artifact:dependencies pathId="classpath" pomRefId="pom"/>
</target>
<target name="-prepare" depends="-init-maven-ant">
<mkdir dir="${deploy.dir}"/>
</target>
<target name="clean" description="Cleans out compiled classes and docs.">
<delete dir="${classes.dir}"/>
<delete dir="${tclasses.dir}"/>
<delete dir="${deploy.dir}/docs"/>
<delete dir="${gwtjar.dir}"/>
</target>
<target name="distclean" description="Cleans out all build resultss.">
<delete dir="${deploy.dir}"/>
</target>
<target name="compile" depends="-prepare" description="Compiles main and test sources.">
<mkdir dir="${classes.dir}"/>
<copy todir="${classes.dir}"><fileset dir="src/main/resources" includes="**"/></copy>
<javac srcdir="${src.dir}" destdir="${classes.dir}" includeAntRuntime="false"
debug="on" optimize="${build.optimize}" source="1.5" target="1.5" encoding="utf-8">
<classpath refid="classpath"/>
<compilerarg value="-Xlint"/>
<compilerarg value="-Xlint:-serial"/>
</javac>
<mkdir dir="${tclasses.dir}"/>
<copy todir="${tclasses.dir}"><fileset dir="src/test/resources" includes="**"/></copy>
<javac srcdir="${test.dir}" destdir="${tclasses.dir}" includeAntRuntime="false"
debug="on" optimize="${build.optimize}" source="1.5" target="1.5" encoding="utf-8">
<classpath>
<path refid="classpath"/>
<pathelement location="${classes.dir}"/>
</classpath>
<compilerarg value="-Xlint"/>
<compilerarg value="-Xlint:-serial"/>
</javac>
</target>
<target name="coreen" depends="-prepare" description="Generates Coreen metadata.">
<java fork="true" classname="coreen.java.Main">
<classpath>
<path refid="classpath"/>
<pathelement location="${java.home}/../lib/tools.jar"/>
<pathelement location="${coreen.jar}"/>
</classpath>
<arg line="${src.dir}"/>
</java>
</target>
<target name="javadoc" depends="-prepare" description="Builds javadocs.">
<tstamp><format property="year" pattern="yyyy"/></tstamp>
<mkdir dir="${javadoc.dir}"/>
<javadoc windowtitle="${lib.name} API" doctitle="${lib.name} API"
overview="src/main/javadoc/overview.html" destdir="${javadoc.dir}"
additionalparam="-breakiterator">
<packageset dir="${src.dir}"/>
<bottom>Copyright &#169; 2000-${year} Michael Bayne, et al. All Rights Reserved.</bottom>
<classpath refid="classpath"/>
<link href="http://download.oracle.com/javase/1.5.0/docs/api/"/>
</javadoc>
</target>
<!-- a target for rebuilding everything -->
<target name="all" depends="clean,compile,javadoc,dist"
description="Cleans and rebuilds everything."/>
<property name="test" value=""/>
<target name="tests" depends="compile"
description="Runs unit tests. Use -Dtest=Foo to run only FooTest.">
<taskdef name="unit" classpathref="classpath"
classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"/>
<mkdir dir="${deploy.dir}/test-reports"/>
<unit printsummary="off" haltonfailure="yes" fork="${junit.fork}">
<classpath>
<pathelement location="${classes.dir}"/>
<pathelement location="${tclasses.dir}"/>
<path refid="classpath"/>
<fileset dir="lib/test" includes="*.jar"/>
</classpath>
<sysproperty key="test_dir" value="${tclasses.dir}"/>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<batchtest todir="${deploy.dir}/test-reports">
<fileset dir="${test.dir}" includes="**/*${test}*Test.java"/>
</batchtest>
</unit>
</target>
<target name="dist" depends="compile" description="Builds jar files.">
<jar destfile="${deploy.dir}/${lib.name}.jar" basedir="${classes.dir}"/>
<!-- we export a small selection of classes for use by GWT -->
<mkdir dir="${gwtjar.dir}"/>
<copy todir="${gwtjar.dir}">
<fileset dir="src/main/resources" includes="com/samskivert/Utils.gwt.xml"/>
<fileset dir="${src.dir}" includes="com/samskivert/text/MessageUtil.java"/>
<fileset dir="${src.dir}" includes="com/samskivert/util/ByteEnum.java"/>
<fileset dir="${src.dir}" includes="com/samskivert/util/ByteEnumUtil.java"/>
</copy>
<jar basedir="${gwtjar.dir}" destfile="${deploy.dir}/${lib.name}-gwt.jar"/>
<delete dir="${gwtjar.dir}"/>
</target>
<target name="maven-deploy" depends="dist"
description="Deploys our build artifacts to a Maven repository.">
<fail unless="maven.deploy.repo">
Must specify Maven repository with -Dmaven.deploy.repo=file://somepath
</fail>
<artifact:deploy file="${deploy.dir}/${lib.name}.jar" uniqueVersion="false">
<remoteRepository url="${maven.deploy.repo}"/>
<pom refid="pom"/>
</artifact:deploy>
<artifact:pom id="gwt-pom" file="gwt-pom.xml"/>
<artifact:deploy file="${deploy.dir}/${lib.name}-gwt.jar" uniqueVersion="false">
<remoteRepository url="${maven.deploy.repo}"/>
<pom refid="gwt-pom"/>
</artifact:deploy>
</target>
</project>