Category Archives: J2EE

Sample build.xml and build.properties file for your j2ee web projects

Here’s the build.properties file.

build.properties

 

tomcat.home = C:/servers/apache-tomcat-6.0.32
project.name = Sidsol
war.name = sidsol
jsp.dir = web/WEB-INF/views
css.dir = web/css
images.dir = web/images
js.dir = web/script
dist.war = C:/workspace/Sidsol/dist

 

Here’s the build.xml file.

build.xml

<pre lang=”xml”>

<?xml version=”1.0″?>
<project name=”${project.name}” default=”build-deploy” basedir=”.”>
<property environment=”env” />
<property file=”${basedir}/build.properties” />

<property name=”dist.dir” value=”dist” />
<property name=”src.dir” value=”src” />
<property name=”src.test.dir” value=”src/test” />
<property name=”lib.dir” value=”web/WEB-INF/lib” />
<property name=”war.dir” value=”war” />
<property name=”classes.dir” value=”${war.dir}/WEB-INF/classes” />
<property name=”deploy.dir” value=”${tomcat.home}/webapps” />
<property name=”war.deploy.dir” value=”${deploy.dir}/” />
<property name=”javac.debug” value=”true” />
<property name=”javac.deprecation” value=”false” />
<property name=”debug” value=”false” />

<fileset id=”lib” dir=”${lib.dir}”>
<include name=”*.jar” />
</fileset>

<path id=”build.classpath”>
<fileset refid=”lib” />
</path>

<target name=”init” description=”Initialize the build”>
<mkdir dir=”${classes.dir}” />
<mkdir dir=”${dist.dir}” />
</target>

<target name=”compileapp” depends=”init”
description=”Compile the Java source code”
unless=”eclipse.running”>
<javac classpathref=”build.classpath”
destdir=”${classes.dir}”
debug=”${javac.debug}”
deprecation=”${javac.deprecation}”
nowarn=”on” >
<src path=”${src.dir}” />
</javac>
<copy todir=”${classes.dir}” preservelastmodified=”true” verbose=”true”>
<fileset dir=”${src.dir}”>
<include name=”**/*.vm”/>
</fileset>
</copy>
</target>

<target name=”copyclasses” depends=”init”
description=”Copy the classes that were compiled by eclipse”
if=”eclipse.running” >
<copy todir=”${classes.dir}” preservelastmodified=”true” verbose=”true”>
<fileset dir=”bin”>
<include name=”**/*.class”/>
</fileset>
</copy>

</target>

<target name=”build-war”
depends=”compileapp,copyclasses”
description=”Build the distribution .war file”>

<copy todir=”${war.dir}/WEB-INF/lib” preservelastmodified=”true”>
<fileset dir=”${lib.dir}”>
<include name=”*.*”/>
<exclude name=”jsp-api*.jar”/>
<exclude name=”jsf-api*.jar”/>
<exclude name=”jsf-impl*.jar”/>
<exclude name=”servlet-api*.jar”/>
</fileset>
</copy>
<copy todir=”${war.dir}” preservelastmodified=”true”>
<fileset dir=”${basedir}/Web”>
<exclude name=”**/lib/*”/>
</fileset>
</copy>

<copy todir=”${war.dir}/WEB-INF/classes” preservelastmodified=”true”>
<fileset dir=”${basedir}/src”>
<include name=”*.properties”/>
<include name=”*.template”/>
<include name=”*.dtd”/>
<include name=”*.xml”/>
</fileset>
</copy>
<!–
<war destfile=”${project.name}.war” webxml=”web/WEB-INF/web.xml”>
<classes dir=”${classes.dir}” />
</war>
–>

<jar destfile=”${dist.dir}/${war.name}.war”
compress=”true”>
<fileset dir=”${war.dir}”>
<include name=”**/*”/>
</fileset>
</jar>

</target>

<target name=”archive” depends=”build-war”
description=”Package the archives”>
<war destfile=”${dist.dir}/${war.name}.war”
webxml=”${war.dir}/WEB-INF/web.xml”>
<manifest>
<attribute name=”Built-By” value=”${user.name}”/>
<attribute name=”Build-Date” value=”${today}”/>
<attribute name=”Release-Tag” value=”$Name:  $”/>
</manifest>

<fileset dir=”${war.dir}”>
<exclude name=”WEB-INF/web.xml”/>
<include name=”*.*”/>
<include name=”**/*.*”/>
</fileset>
</war>
<!– delete war directory –>
<delete dir=”${war.dir}” verbose=”true” />
</target>

<target name=”build-deploy” depends=”archive”
description=”Deploy to tomcat”>
<fail unless=”tomcat.home”>tomcat.home not set</fail>

<copy todir=”${war.deploy.dir}”>
<fileset dir=”${dist.dir}”/>
</copy>
<!–
<mkdir dir=”${war.deploy.dir}”/>
<copy todir=”${war.deploy.dir}”>
<fileset dir=”${war.dir}”/>
</copy>
–>
</target>

<target name=”clean” description=”Cleans up the build directory”>
<delete dir=”${dist.dir}”/>
<delete dir=”${war.dir}”/>
<delete dir=”${war.deploy.dir}/${project.name}” />
<delete file=”${war.deploy.dir}/${project.name}.war” />
</target>

<target name=”clean-app-dir” description=”Cleans up the deployed app directory”>
<delete dir=”${war.deploy.dir}/${project.name}” />
</target>
<target name=”clean-build-deploy”
depends=”clean, build-deploy”
description=”Cleans up the build directory, and rebuilds and deploys the project.”>
</target>

<target name=”hot-deploy” description=”Performs a hot deployment of updated statis resources.”>
<copy todir=”${war.deploy.dir}/${project.name}/”
verbose=”true”>
<fileset dir=”web”>
<exclude name=”**/*.jar”/>
</fileset>
</copy>
<copy todir=”${war.deploy.dir}/${project.name}/WEB-INF/classes/”
verbose=”true”>
<fileset dir=”bin”>
</fileset>
</copy>
</target>

</project>

</code>

 

</pre>