Tuesday, July 24, 2012

Ant Build file (build.xml)

Following is the general ant build file (build.xml).
<project name="MyWebApplication" basedir="." default="archive">

    <property name="WEB-INF" value="${basedir}/WebRoot/WEB-INF" />
    <property name="OUT" value="${basedir}/out" />
    <property name="WAR_FILE_NAME" value="mywebapplication.war" />
    <property name="TEMP" value="${basedir}/temp" />

    <target name="help">
        <echo>
            --------------------------------------------------
            compile - Compile
            archive - Generate WAR file
            --------------------------------------------------
        </echo>
    </target>

    <target name="init">
        <delete dir="${WEB-INF}/classes" />
        <mkdir dir="${WEB-INF}/classes" />
    </target>

    <target name="compile" depends="init">
        <javac srcdir="${basedir}/src" 
                    destdir="${WEB-INF}/classes" 
                    classpathref="libs">
        </javac>
    </target>

    <target name="archive" depends="compile">
        <delete dir="${OUT}" />
        <mkdir dir="${OUT}" />
        <delete dir="${TEMP}" />
        <mkdir dir="${TEMP}" />
        <copy todir="${TEMP}" >
            <fileset dir="${basedir}/WebRoot">
            </fileset>
        </copy>
        <move file="${TEMP}/log4j.properties" 
                        todir="${TEMP}/WEB-INF/classes" />
        <war destfile="${OUT}/${WAR_FILE_NAME}" 
                        basedir="${TEMP}" 
                        compress="true" 
                        webxml="${TEMP}/WEB-INF/web.xml" />
        <delete dir="${TEMP}" />
    </target>

    <path id="libs">
        <fileset includes="*.jar" dir="${WEB-INF}/lib" />
    </path>

</project>

No comments: