Saturday, April 7, 2012

web application War file creation with ant script

build.properties:
----------------

app.name =project  //project name
app.version = 0.1-dev
build.home = ${basedir}/build
dest.home = ${basedir}/dest
src.home =${basedir}/src/main/java
web.home =${basedir}/Webcontent
lib.dir =${basedir}/Webcontent/WEB-INF/lib
resources.dir =${basedir}/src/main/resources
compile.debug = true
compile.deprecation = false
compile.optimize = true

build.xml:
----------


<project name="TrackingGadget" default="buildWar" basedir=".">

<property file="${basedir}/build.properties" />

<path id="compile.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>

<target name="clean" description="Delete old build and dest directories">
<echo message="${basedir}" />
<echo message="Delete old build and dest directories." />
<delete dir="${build.home}" />
<delete dir="${dest.home}" />
</target>

<target name="compile" depends="prepare" description="Compile Java sources">
<echo message="Compile the java source code." />

<javac srcdir="${src.home}" destdir="${build.home}/WEB-INF/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}">
<classpath refid="compile.classpath" />
</javac>

<copy todir="${build.home}/WEB-INF/classes">
<fileset dir="${src.home}" excludes="**/*.java" />
<fileset dir="${resources.dir}" excludes="**/*.java" />
</copy>
<copydir dest="${build.home}/images" src="${web.home}/images">
</copydir>
<copydir dest="${build.home}/css" src="${web.home}/css">
</copydir>
</target>

<target name="buildWar" depends="clean,compile">
<echo message="Creating TrackingGadget war file." />
<war warfile="${dest.home}/TrackingGadget-${app.version}.war" webxml="${build.home}/WEB-INF/web.xml">
<fileset dir="${build.home}">
<include name="**/*" />
</fileset>
</war>
</target>

<target name="prepare">
<echo message="Creating the required directories." />
<mkdir dir="${build.home}" />
<mkdir dir="${build.home}/WEB-INF" />
<mkdir dir="${build.home}/WEB-INF/classes" />
<mkdir dir="${dest.home}" />
<copy todir="${build.home}">
<fileset dir="${web.home}" excludes="**/struts.xml"/>
</copy>
<mkdir dir="${build.home}/WEB-INF/lib" />
</target>
</project>


No comments:

Post a Comment