Updated build script.

This commit is contained in:
Jonathan Bernard 2013-07-19 18:52:07 -05:00
parent 988ed2bb51
commit fcbb0bd1ee
2 changed files with 250 additions and 204 deletions

View File

@ -1,201 +1,248 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<project name="Jonathan Bernard Build Common"> <project name="Jonathan Bernard Build Common"
xmlns:ivy="antlib:org.apache.ivy.ant">
<property environment="env"/>
<property environment="env"/>
<!--======== INIT TARGETS ========-->
<target name="-init" depends="-common-init,init"/> <!--======== INIT TARGETS ========-->
<target name="-init" depends="-common-init,init"/>
<target name="-common-init">
<!-- Set default values for some key properties. Since properties are <target name="-common-init">
write once, any value set before this point takes precedence. --> <!-- Set default values for some key properties. Since properties are
write once, any value set before this point takes precedence. -->
<property name="versioning.file" value="project.properties"/>
<property name="versioning.file" value="project.properties"/>
<property name="src.dir" value="${basedir}/src"/>
<property name="build.dir" value="${basedir}/build"/> <property name="src.dir" value="${basedir}/src"/>
<property name="lib.dir" value="${basedir}/lib"/> <property name="build.dir" value="${basedir}/build"/>
<property name="resources.dir" value="${basedir}/resources"/> <property name="lib.dir" value="${basedir}/lib"/>
<property name="resources.dir" value="${basedir}/resources"/>
<!--======== PATHS ========--> <property name="splash.image" value="splash.png"/>
<path id="groovy.classpath">
<fileset dir="${env.GROOVY_HOME}/lib"> <!--======== PATHS ========-->
<include name="*.jar"/> <path id="groovy.classpath">
</fileset> <fileset dir="${env.GROOVY_HOME}/lib">
</path> <include name="*.jar"/>
</fileset>
<path id="groovy.embeddable"> </path>
<fileset dir="${env.GROOVY_HOME}/embeddable">
<include name="*.jar"/> <path id="groovy.embeddable">
</fileset> <fileset dir="${env.GROOVY_HOME}/embeddable">
</path> <include name="*.jar"/>
</fileset>
<path id="compile-libs"> </path>
<fileset dir="${build.dir}/lib/compile/jar">
<include name="*.jar"/> <path id="compile-libs">
</fileset> <fileset dir="${build.dir}/lib/compile/jar">
</path> <include name="*.jar"/>
</fileset>
<path id="runtime-libs"> </path>
<fileset dir="${build.dir}/lib/runtime/jar">
<include name="*.jar"/> <path id="runtime-libs">
</fileset> <fileset dir="${build.dir}/lib/runtime/jar">
</path> <include name="*.jar"/>
</fileset>
</target> </path>
<target name="-init-groovy"> </target>
<taskdef name="groovyc" classpathref="groovy.classpath"
classname="org.codehaus.groovy.ant.Groovyc"/> <target name="-init-groovy">
<taskdef name="groovyc" classpathref="groovy.classpath"
<taskdef name="groovy" classpathref="groovy.classpath" classname="org.codehaus.groovy.ant.Groovyc"/>
classname="org.codehaus.groovy.ant.Groovy"/>
</target> <taskdef name="groovy" classpathref="groovy.classpath"
classname="org.codehaus.groovy.ant.Groovy"/>
<target name="init"/> </target>
<target name="clean" depends="-init"> <target name="init"/>
<delete dir="${build.dir}"/>
</target> <target name="clean" depends="-init">
<delete dir="${build.dir}"/>
<!--======== LIBRARY TARGETS ========--> </target>
<target name="lib" depends="-lib-local,-lib-ivy"/>
<!--======== LIBRARY TARGETS ========-->
<target name="-lib-ivy" unless="${lib.local}"/> <target name="-lib" depends="-lib-local,-lib-ivy,lib"/>
<target name="-lib-local" if="${lib.local}"> <target name="lib"/>
<echo message="Resolving libraries locally."/>
<mkdir dir="${build.dir}/lib/compile/jar"/> <target name="-init-ivy">
<mkdir dir="${build.dir}/lib/runtime/jar"/> <ivy:settings id="ivy.settings" file="ivysettings.xml"/>
<copy todir="${build.dir}/lib/compile/jar" failonerror="false"> </target>
<fileset dir="${lib.dir}/compile/jar"/>
</copy> <target name="-lib-ivy" depends="-init-ivy" unless="${lib.local}">
<ivy:retrieve settingsRef="ivy.settings"
<copy todir="${build.dir}/lib/runtime/jar" failonerror="false"> pattern="${lib.dir}/[conf]/[type]/[artifact]-[revision].[ext]"
<fileset dir="${lib.dir}/runtime/jar"/> conf="compile,runtime"/>
</copy> </target>
</target>
<target name="-lib-groovy" if="${lib.local}">
<!--======== VERSIONING TARGETS ========--> <copy todir="${build.dir}/lib/runtime/jar">
<target name="increment-build-number" depends="-init"> <fileset dir="${env.GROOVY_HOME}/embeddable"/>
<propertyfile file="${versioning.file}"> </copy>
<entry key="build.number" default="0" type="int" value="1" </target>
operation="+"/>
</propertyfile> <target name="-lib-local" if="${lib.local}">
</target> <echo message="Resolving libraries locally."/>
<mkdir dir="${build.dir}/lib/compile/jar"/>
<target name="set-version" depends="-init"> <mkdir dir="${build.dir}/lib/runtime/jar"/>
<input <copy todir="${build.dir}/lib/compile/jar" failonerror="false">
message="The current version is ${version}. Enter a new version: " <fileset dir="${lib.dir}/compile/jar"/>
addproperty="new-version"/> </copy>
<propertyfile file="${versioning.file}">
<entry key="version" value="${new-version}" operation="=" <copy todir="${build.dir}/lib/runtime/jar" failonerror="false">
type="string"/> <fileset dir="${lib.dir}/runtime/jar"/>
<entry key="build.number" value="0" type="int" operation="="/> </copy>
</propertyfile> </target>
</target>
<!--======== VERSIONING TARGETS ========-->
<!--======== COMPILATION TARGETS ========--> <target name="increment-build-number" depends="-init">
<target name="-compile-groovy" depends="-init,-init-groovy,lib"> <propertyfile file="${versioning.file}">
<mkdir dir="${build.dir}/main/classes"/> <entry key="build.number" default="0" type="int" value="1"
<groovyc srcdir="${src.dir}/main" destdir="${build.dir}/main/classes" operation="+"/>
includeAntRuntime="false"> </propertyfile>
</target>
<classpath>
<path refid="groovy.classpath"/> <target name="set-version" depends="-init">
<path refid="compile-libs"/> <input
</classpath> message="The current version is ${version}. Enter a new version: "
<javac/> addproperty="new-version"/>
</groovyc> <propertyfile file="${versioning.file}">
</target> <entry key="version" value="${new-version}" operation="="
type="string"/>
<target name="-compile-java" depends="-init,lib"> <entry key="build.number" value="0" type="int" operation="="/>
<mkdir dir="${build.dir}/main/classes"/> </propertyfile>
<javac srcdir="${src.dir}/main" destdir="${build.dir}/main/classes" </target>
includeAntRuntime="false" classpathref="compile-libs"/>
</target> <!--======== COMPILATION TARGETS ========-->
<target name="-compile-groovy" depends="-init,-init-groovy,-lib,-lib-groovy">
<target name="compile" depends="-compile-groovy"/> <mkdir dir="${build.dir}/main/classes"/>
<groovyc srcdir="${src.dir}/main" destdir="${build.dir}/main/classes"
<!--======== JUNIT TARGETS ========--> includeAntRuntime="false" fork="true">
<target name="-compile-tests-groovy" depends="-init,compile">
<mkdir dir="${build.dir}/test/classes"/> <classpath>
<groovyc srcdir="${src.dir}/test" destdir="${build.dir}/test/classes" <path refid="groovy.classpath"/>
includeAntRuntime="false"> <path refid="compile-libs"/>
</classpath>
<classpath> <javac/>
<path refid="groovy.classpath"/> </groovyc>
<path refid="compile-libs"/> </target>
<path location="${build.dir}/main/classes"/>
</classpath> <target name="-compile-java" depends="-init,-lib">
</groovyc> <mkdir dir="${build.dir}/main/classes"/>
</target> <javac srcdir="${src.dir}/main" destdir="${build.dir}/main/classes"
includeAntRuntime="false" classpathref="compile-libs"/>
<target name="-compile-tests-java" depends="-init,compile"> </target>
<mkdir dir="${build.dir}/test/classes"/>
<javac srcdir="${src.dir}/test" destdir="${build.dir}/test/classes" <target name="compile" depends="-compile-groovy"/>
includeAntRuntime="false">
<classpath> <!--======== JUNIT TARGETS ========-->
<path refid="compile-libs"/> <target name="-compile-tests-groovy" depends="-init,compile">
<path location="${build.dir}/main/classes"/> <mkdir dir="${build.dir}/test/classes"/>
</classpath> <groovyc srcdir="${src.dir}/test" destdir="${build.dir}/test/classes"
</javac> includeAntRuntime="false" fork="true">
</target>
<classpath>
<target name="compile-tests" depends="-compile-tests-groovy"/> <path refid="groovy.classpath"/>
<path refid="compile-libs"/>
<target name="run-tests" depends="compile-tests,resources-test"> <path location="${build.dir}/main/classes"/>
<junit printsummary="true"> </classpath>
<classpath> </groovyc>
<path refid="groovy.classpath"/> </target>
<path refid="compile-libs"/>
<path location="${build.dir}/main/classes"/> <target name="-compile-tests-java" depends="-init,compile">
<path location="${build.dir}/test/classes"/> <mkdir dir="${build.dir}/test/classes"/>
</classpath> <javac srcdir="${src.dir}/test" destdir="${build.dir}/test/classes"
<formatter type="plain" usefile="false"/> includeAntRuntime="false">
<batchtest> <classpath>
<fileset dir="${build.dir}/test/classes"> <path refid="compile-libs"/>
<include name="**/*"/> <path location="${build.dir}/main/classes"/>
</fileset> </classpath>
</batchtest> </javac>
</junit> </target>
</target>
<target name="compile-tests" depends="-compile-tests-groovy"/>
<!--======== RESOURCES TARGETS ========-->
<target name="run-tests" depends="compile-tests,resources-test">
<target name="resources" depends="-init"> <junit printsummary="true">
<mkdir dir="${build.dir}/main/classes"/> <classpath>
<copy todir="${build.dir}/main/classes" failonerror="false"> <path refid="groovy.classpath"/>
<fileset dir="${resources.dir}/main/"/> <path refid="compile-libs"/>
</copy> <path location="${build.dir}/main/classes"/>
</target> <path location="${build.dir}/test/classes"/>
</classpath>
<target name="resources-test" depends="-init"> <formatter type="plain" usefile="false"/>
<mkdir dir="${build.dir}/test/classes"/> <batchtest>
<copy todir="${build.dir}/test/classes" failonerror="false"> <fileset dir="${build.dir}/test/classes">
<fileset dir="${resources.dir}/test/"/> <include name="**/*"/>
</copy> </fileset>
</target> </batchtest>
</junit>
<!--======== BUILD TARGETS ========--> </target>
<target name="-build-modular"
depends="compile,increment-build-number,resources"> <!--======== RESOURCES TARGETS ========-->
<jar destfile="${build.dir}/${name}-${version}.${build.number}.jar" <target name="resources" depends="-init">
basedir="${build.dir}/main/classes"/> <mkdir dir="${build.dir}/main/classes"/>
</target> <copy todir="${build.dir}/main/classes" failonerror="false">
<fileset dir="${resources.dir}/main/"/>
<target name="-build-packed-libs" </copy>
depends="compile,increment-build-number,resources"> </target>
<unjar destdir="${build.dir}/main/classes"> <target name="resources-test" depends="-init">
<fileset dir="${build.dir}/lib/runtime/jar"/> <mkdir dir="${build.dir}/test/classes"/>
</unjar> <copy todir="${build.dir}/test/classes" failonerror="false">
<fileset dir="${resources.dir}/test/"/>
<jar destfile="${build.dir}/${name}-${version}.${build.number}.jar" </copy>
basedir="${build.dir}/main/classes"/> </target>
</target>
<!--======== BUILD TARGETS ========-->
<target name="build" depends="-build-modular"/> <target name="-build-modular-lib" unless="executable.jar"
depends="compile,increment-build-number,resources">
</project>
<jar destfile="${build.dir}/${name}-${version}.${build.number}.jar"
basedir="${build.dir}/main/classes"/>
</target>
<target name="-build-modular-executable" if="executable.jar"
depends="compile,increment-build-number,resources">
<pathconvert property="jar.classpath" pathsep=" " refid="runtime-libs">
<mapper>
<chainedmapper>
<!-- remove absolute path -->
<flattenmapper />
<!-- add lib/ prefix -->
<globmapper from="*" to="lib/*" />
</chainedmapper>
</mapper>
</pathconvert>
<jar destfile="${build.dir}/${name}-${version}.${build.number}.jar"
basedir="${build.dir}/main/classes">
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
<attribute name="Class-Path" value="${jar.classpath}"/>
<attribute name="SplashScreen-Image" value="${splash.image}"/>
</manifest>
</jar>
</target>
<target name="-build-modular"
depends="-build-modular-lib,-build-modular-executable"/>
<target name="-build-packed-libs"
depends="compile,increment-build-number,resources">
<unjar destdir="${build.dir}/main/classes">
<fileset dir="${build.dir}/lib/runtime/jar"/>
</unjar>
<jar destfile="${build.dir}/${name}-${version}.${build.number}.jar"
basedir="${build.dir}/main/classes"/>
</target>
<target name="build" depends="-build-modular"/>
</project>

View File

@ -1,6 +1,5 @@
#Mon, 27 Jun 2011 17:12:00 -0500 #Fri, 19 Jul 2013 18:51:43 -0500
name=timestamper-lib name=timestamper-lib
version=1.1 version=1.1
lib.local=true lib.local=true
build.number=2
build.number=1