<!-- Ant Skeleton-->
<!--Example 3-1. Complete buildfile for the irssibot project--> <?xml version="1.0"?> <!-- Comments are just as important in buildfiles, do not --> <!-- avoid writing them! --> <!-- Example build file for "Ant: The Definitive Guide" -->
<project name="irssibot" default="all" basedir="."> <!-- Project-wide settings. All directories are relative to the --> <!-- project directories --> <property name="src.dir" value="src"/> <property name="doc.dir" value="doc"/> <property name="dist.dir" value="dist"/> <property name="lib.dir" value="lib"/> <property name="bin.dir" value="bin"/> <!-- Build directories --> <property name="build.dir" value="build"/> <property name="build.classes" value="${build.dir}/classes"/> <property name="build.doc" value="${build.dir}/doc"/> <property name="build.lib" value="${build.dir}/lib"/> <!-- Global settings --> <property name="debug.flag" value="on"/> <property name="java.lib" value="${java.home}/jre/lib/rt.jar"/> <!-- Global property for <javac> --> <property name="build.compiler" value="modern"/> <path id="classpath"> <fileset dir="${lib.dir}"> <include name="**/*.jar"/> </fileset> </path>
<target name="prepare"> <mkdir dir="${build.dir}"/> <mkdir dir="${build.lib}"/> <tstamp/> <echo message="${TSTAMP}"/> </target> <target name="all" depends="bot,modules"/> <!-- Build the IRC bot application --> <target name="bot" depends="prepare"> <mkdir dir="${build.classes}"/> <javac destdir="${build.classes}" debug="${debug.flag}" deprecation="on"> <!-- We could have used javac's srcdir attribute --> <src path="${src.dir}"/> <exclude name="irssibot/modules/**"/> <classpath refid="classpath"/> </javac> <jar jarfile="${build.lib}/irssibot.jar" basedir="${build.classes}" > <exclude name="irssibot/modules/**"/> </jar> </target>
<!-- Build the IRC bot modules --> <target name="modules" depends="prepare,bot"> <mkdir dir="${build.classes}/modules"/> <javac destdir="${build.classes}/modules" debug="${debug.flag}" deprecation="on" > <!-- We could have used javac's srcdir attribute --> <src path="${src.dir}"/> <include name="irssibot/modules/**"/> <classpath refid="classpath"/> </javac> <jar jarfile="${build.lib}/irssimodules.jar" basedir="${build.classes}/modules" manifest="MANIFEST.MF" > <manifest> <attribute name="ModuleType" value="irssibot"/> </manifest> <include name="irssibot/modules/**"/> </jar> </target> <!-- Deploy the application in a "ready-to-run" state --> <target name="deploy" depends="bot,javadoc"> <!-- Create the distribution directory --> <mkdir dir="${dist.dir}"/> <mkdir dir="${dist.dir}/bin"/> <mkdir dir="${dist.dir}/lib"/> <mkdir dir="${dist.dir}/doc"/> <mkdir dir="${dist.dir}/config"/> <!-- Copy the primary program and modules --> <copy todir="${dist.dir}/lib"> <fileset dir="${build.classes}"/> <fileset dir="${build.lib}" includes="irssibot.jar"/> <fileset dir="${build.lib}" includes="irssimodules.jar"/> <fileset dir="${lib.dir}" includes="*.jar"/> </copy> <!-- Copy the documentation --> <copy todir="${dist.dir}/doc"> <fileset dir="${doc.dir}"/> </copy> <!-- Copy the pre-fab configuration files --> <copy todir="${dist.dir}/config"> <fileset dir="${lib.dir}" includes="*.xml"/> </copy> <!-- Copy the running scripts --> <copy todir="${dist.dir}/bin"> <fileset dir="${bin.dir}" includes="bot.sh"/> <fileset dir="${bin.dir}" includes="bot.bat"/> </copy> </target>
<!-- Generate the API documentation for the IRC library and the --> <!-- IRC bot using the library --> <target name="javadoc" depends="bot"> <mkdir dir="${doc.dir}/api"/> <javadoc packagenames="irssibot.*" sourcepath="${src.dir}" destdir="${doc.dir}/api" classpath="${lib.dir}/xerces.jar:${lib.dir}/mysql.jar" author="true" version="true" use="true" /> </target> <!-- Delete class files built during previous builds. Leave directories --> <target name="clean"> <delete> <fileset dir="${build.classes}" includes="**/*.class"/> </delete> <delete dir="${doc.dir}/api"/> </target> <!-- Delete any created directories and their contents --> <target name="cleanall" depends="clean"> <delete dir="${build.dir}"/> <delete dir="${dist.dir}"/> <delete dir="${doc.dir}/api"/> </target> </project> 
|