Crazy experiment number two: obtain our dependencies using the Maven Ant task

so that we're 100% external dependency free no matter how you build us. This is
the path to righteousness that all of our libraries must eventually go down to
save us from the dependency frying pan and put us into the dependency fire.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2924 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
samskivert
2010-10-15 15:53:24 +00:00
parent bdf46ef4c7
commit 2726db602f
3 changed files with 38 additions and 155 deletions
+38 -66
View File
@@ -1,103 +1,81 @@
<?xml version="1.0"?>
<project name="samskivert" default="compile" basedir=".">
<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="libs.dir" value="lib"/> <!-- used in libs-incl.xml -->
<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"/>
<!-- declare our classpath business -->
<path id="classpath">
<pathelement location="${classes.dir}"/>
<fileset dir="${deploy.dir}/lib" includes="*.jar"/>
</path>
<!-- import some targets to enumerate and check dependency availability -->
<import file="etc/libs-incl.xml"/>
<import file="etc/depends-incl.xml"/>
<!-- prepares the application directories -->
<target name="prepare">
<tstamp><format property="year" pattern="yyyy" /></tstamp>
<mkdir dir="${deploy.dir}"/>
<mkdir dir="${deploy.dir}/lib"/>
<mkdir dir="${classes.dir}"/>
<mkdir dir="${tclasses.dir}"/>
<mkdir dir="${javadoc.dir}"/>
<copy todir="${classes.dir}"><fileset dir="src/main/resources" includes="**"/></copy>
<copy todir="${tclasses.dir}"><fileset dir="src/test/resources" includes="**"/></copy>
<copy todir="${deploy.dir}/lib" flatten="true">
<fileset refid="${lib.name}.libs"/>
</copy>
<!-- make sure we have our minimum required dependencies -->
<property name="deps.root" value="http://samskivert.googlecode.com/files"/>
<property name="deps.url" value="${deps.root}/samskivert-depends-1.0.zip"/>
<fail message="Missing jar dependencies. Download ${deps.url} and unzip it here.">
<condition><not><available file="${deploy.dir}/lib/junit4.jar"/></not></condition>
</fail>
<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>
<!-- cleans out the intermediate build files -->
<target name="clean">
<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}"/>
<delete failonerror="false"><fileset dir="${deploy.dir}" includes="*.jar"/></delete>
</target>
<!-- wipes the entire build directory clean -->
<target name="distclean">
<target name="distclean" description="Cleans out all build resultss.">
<delete dir="${deploy.dir}"/>
</target>
<!-- build the java class files -->
<target name="compile" depends="prepare,compute-builds">
<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"/>
<exclude name="com/samskivert/net/MailUtil*" unless="build.mail"/>
<exclude name="com/samskivert/servlet/**" unless="build.servlet"/>
<exclude name="com/samskivert/util/Log4JLogger*" unless="log4j.present"/>
<exclude name="com/samskivert/velocity/**" unless="build.velocity"/>
<exclude name="com/samskivert/xml/**" unless="build.xml"/>
<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>
<exclude name="com/samskivert/net/MailUtil*" unless="build.mail"/>
<exclude name="com/samskivert/servlet/**" unless="build.servlet"/>
<exclude name="com/samskivert/util/Log4JLogger*" unless="log4j.present"/>
<exclude name="com/samskivert/velocity/**" unless="build.velocity"/>
<exclude name="com/samskivert/xml/**" unless="build.xml"/>
<compilerarg value="-Xlint"/>
<compilerarg value="-Xlint:-serial"/>
</javac>
</target>
<!-- build the javadoc documentation -->
<target name="javadoc" depends="prepare,compute-builds">
<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"
link="http://samskivert.com/code/samskivert/samskivert/docs/api/">
<packageset dir="${src.dir}">
<exclude name="com/samskivert/servlet/**" unless="build.servlet"/>
<exclude name="com/samskivert/velocity/**" unless="build.velocity"/>
<exclude name="com/samskivert/xml/**" unless="build.xml"/>
</packageset>
<packageset dir="${src.dir}"/>
<bottom>Copyright &#169; 2000-${year} Michael Bayne, et al. All Rights Reserved.</bottom>
<classpath refid="classpath"/>
<link href="http://java.sun.com/j2se/1.4/docs/api/"/>
@@ -105,9 +83,9 @@
</target>
<!-- a target for rebuilding everything -->
<target name="all" depends="clean,compile,javadoc,dist"/>
<target name="all" depends="clean,compile,javadoc,dist"
description="Cleans and rebuilds everything."/>
<!-- runs our unit tests -->
<property name="test" value=""/>
<target name="tests" depends="compile"
description="Runs unit tests. Use -Dtest=Foo to run only FooTest.">
@@ -117,24 +95,18 @@
<classpath>
<pathelement location="${classes.dir}"/>
<pathelement location="${tclasses.dir}"/>
<fileset dir="${deploy.dir}/lib" includes="*.jar"/>
<path refid="classpath"/>
<fileset dir="lib/test" includes="*.jar"/>
</classpath>
<sysproperty key="test_dir" value="${tclasses.dir}"/>
<formatter type="brief" usefile="false"/>
<batchtest>
<fileset dir="${test.dir}">
<include name="**/*${test}*Test.java"/>
<exclude name="com/samskivert/servlet/**" unless="build.servlet"/>
<exclude name="com/samskivert/velocity/**" unless="build.velocity"/>
<exclude name="com/samskivert/xml/**" unless="build.xml"/>
</fileset>
<fileset dir="${test.dir}" includes="**/*${test}*Test.java"/>
</batchtest>
</unit>
</target>
<!-- builds our jar file -->
<target name="dist" depends="compile">
<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}"/>