Hi All,

I have written my first Ant script from scratch, using google and the
O'reilly definitive guide.  I'm mostly happy with what I have ended up with,
however when I try to use the Tomcat DeployTask my application is not
deployed as expected.

If I manually copy my war file to the webapps directory everything is fine,
so I really would like to understand how to use ant to deploy using the
Tomcat task (rather than copying directly to the webapp folder - it seems
cleaner).

The files created after running the DeployTask are...

{webapps}/ciderbob-website/ciderbob-website.war

{webapps}/ciderbob-website/com/ciderbob/dao/*.class

{webapps}/ciderbob-website/com/ciderbob/tags/*.class

(note none of my jsp files or images are present!)

Why did it put ciderbob-website.war INSIDE a ciderbob-website directory? Or
more to the point, why does Tomcat not expand all of the contents? If I
manually copy the war file to {webapps} it all works properly!!?!

Here is my full ant build file...

Any help would be very much appreciated.

Cheers,

Rob.



<?xml version="1.0" encoding = "UTF-8"?>

<project name="ciderbob-common" default="build" basedir=".">

<property name="src" location="./src"/>

<property name="deploy" location="./deploy"/>

<property name="warfile" location="${deploy}/ciderbob-website.war"/>

<property name="web-lib.dir" location="./libs" />

<property name="common-lib" location="../common/bin/lib"/>

<property name="webcontent.dir" location="./WebContent"/>

<property name="web-inf.dir" location="${webcontent.dir}/WEB-INF"/>

<property name="meta-inf.dir" location="${webcontent.dir}/META-INF"/>

<property name="local.manager.url" value="http://localhost:8080/manager"/>

<property name="local.manager.username" value="admin"/>

<property name="local.manager.password" value="yeaRight!"/>

<property name="local.deploy.path" value="/ciderbob-website"/>

<property name="local.war" value="file://${deploy}/"/>

<target name="deploy-local" depends="build">

<!--

You must copy the server/lib/catalina-ant.jar from Tomcat 5

directory into the lib directory of your Ant installation to

use these tasks. (also had to add to eclipse ant path!?)

Also requires manager privileges with Tomcat - edit

conf/tomcat-users.xml to add manager privileges for a username

and password.

-->

<taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/>

<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask"/>

<taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"/>

<undeploy url="${local.manager.url}"

username="${local.manager.username}"

password="${local.manager.password}"

path="${local.deploy.path}" failonerror="no"/>

<!-- this results in the following files being created

{webapps}/ciderbob-website/ciderbob-website.war

{webapps}/ciderbob-website/com/ciderbob/dao/*.class

{webapps}/ciderbob-website/com/ciderbob/tags/*.class

Why did it put ciderbob-website.war INSIDE a ciderbob-website

directory? Or more to the point, why does Tomcat not expand all of

the contents? If I manually copy the war file to {webapps} it all

works properly!!?!

-->

<deploy url="${local.manager.url}"

username="${local.manager.username}"

password="${local.manager.password}"

path="${local.deploy.path}"

localWar="${local.war}"

alwayslog="yes"

/>

<reload url="${local.manager.url}"

username="${local.manager.username}"

password="${local.manager.password}"

path="${local.deploy.path}"/>

</target>

<target name="build" depends="Initialize, Compile, War">

<echo message="Building..."/>

</target>

<target name="Initialize">

<echo message="Initialising..."/>

<delete dir="${deploy}"/>

<mkdir dir="${deploy}"/>

</target>

<path id="classpath">

<fileset dir="${common-lib}">

<include name="**/*.jar"/>

</fileset>

<fileset dir="${web-lib.dir}">

<include name="**/*.jar"/>

</fileset>

</path>

<echo message="Classpath... ${classpath}"/>

<target name="Compile" depends="Initialize">

<depend srcDir="${common-lib}">

</depend>

<echo message="Compiling..."/>

<javac srcdir="${src}" destdir="${deploy}" includes="**/*.java"
excludes="**/Test*.java">

<classpath refid="classpath"/>

</javac>

</target>

<target name="War" depends="Initialize, Compile">

<echo message="Generating War file..."/>

<war destfile="${warfile}" webxml="${web-inf.dir}/web.xml">

<classes dir="${src}" includes="**/*.xml" />

<classes dir="${deploy}" includes="**/*.class" />

<fileset dir="${webcontent.dir}">

<include name="**/*"/>

</fileset>

<lib dir="${web-lib.dir}" includes="**/*.jar" />

<lib dir="${common-lib}" includes="**/*.jar" />

</war>

</target>

</project>

Reply via email to