Java/Ant/Database SQL

Материал из Java эксперт
Перейти к: навигация, поиск

Prepare the database by creating it and inserting data

   <source lang="java">

<?xml version="1.0"?> <project name="Example Application Build" default="build-both" basedir=".">

 <property file="build.properties"/>
 
 <property name="cvsroot" 
           value=":pserver:anoncvs@cvs.apache.org:/home/cvspublic" />
 
 <property name="mysql.cvsroot" 
           value=":pserver:anonymous@cvs.sourceforge.net:/cvsroot/mmmysql" />
  
 <path id="build.classpath">
   <pathelement location="${servlet24.jar}"/>
   <pathelement location="${jsp20.jar}"/>
   <pathelement location="${mysql.jar}"/>
   <pathelement path="${appName.jar}"/>
 </path>
 
  
 
 <fileset id="javadoc" dir="${src}">
   <exclude name="*/conf/**"/>
   <exclude name="*/docs/*"/>
   <include name="shared/**"/>
   <include name="stand-alone/**"/>
   <include name="web/java/**"/>
 </fileset>  
 
  
 
 
  
 
 <property name="docs.all.dir" value="${build}"/>
 
 <patternset id="docs.all">
   <include name="docs/**"/>
 </patternset>
 
 <property name="docs.misc.dir" value="${src}/shared/docs"/>
 
 <patternset id="docs.misc">
   <include name="README"/>
   <include name="LICENSE"/>
 </patternset>
 
 
 
 <property name="src.files.dir" value="."/>
 
 <patternset id="src.files">
   <include name="${src}/**"/>
   <include name="build.*"/>
 </patternset>
 
 
 
  
 <patternset id="bin.jar">
   <include name="*.jar"/>
 </patternset>
 
 
 
  
 <patternset id="bin.war">
   <include name="*.war"/>
 </patternset>
 
  
 
 
 <target name="dir" description="Create the working directories">
   <echo message="Creating the working directories"/>
   <mkdir dir="${build.stand-alone.root}"/>
   <mkdir dir="${build.web.classes}"/>
   <mkdir dir="${dist}"/>
   <mkdir dir="${lib}"/>
 </target>
 
 
 
 
 <target name="checkout-jstl" depends="dir" 
         description="Update or check out required sources
                      from CVS for the JSTL">
   <echo message="Checking out the required JSTL sources from CVS"/>
   <cvs cvsroot="${cvsroot}" quiet="true"
        command="checkout -P ${jstl.build}" 
        dest="${build}" compression="true" />
 </target>
 
 <target name="checkout-mysql-connector" depends="dir" 
         description="Update or check out required sources
         from CVS for the MySQL connector">
   <echo message="Checking out the required sources from CVS for the MySQL connector" />
   <cvs cvsroot="${mysql.cvsroot}" quiet="true"
        command="checkout" package="${mysql.build}"
        dest="${build}" compression="true" />
 </target>
 
 <target name="build-jstl" depends="checkout-jstl" 
         description="Build the JSTL from source">
   <echo message="Building the JSTL from source"/>
   <ant antfile="build.xml" dir="${build}/${jstl.build}"/>
   <copy todir="${lib}">
     <fileset dir="${build}/${jstl.build}/${build}/lib">
       <include name="*.jar"/>
     </fileset>
   </copy>
 </target>
 
 <target name="build-mysql-connector" depends="checkout-mysql-connector" 
         description="Build the MySQL connector from source">
   <echo message="Building the MySQL connector from source"/>
   
   
   <mkdir dir="${build}/dist-mysql-jdbc"/>
   <ant antfile="build.xml" dir="${build}/${mysql.build}"/>
   <copy tofile="${mysql.jar}">
     <fileset dir="${build}/build-mysql-jdbc">
       <include name="mysql-connector*/*.jar"/>
     </fileset>
   </copy>
 </target>



 <target name="compile-stand-alone" depends="dir" 
         description="Compile stand-alone application">
   <echo message="Compiling the stand-alone application"/>
   <javac srcdir="${src.shared.java}" destdir="${build.stand-alone.root}"/>
   <javac srcdir="${src.stand-alone.java}" 
          destdir="${build.stand-alone.root}"/>  
 </target>
 <target name="stand-alone-complete" 
         depends="build-mysql-connector, package-stand-alone" 
         description="Compile stand-alone application, 
                      using CVS version of the MySQL connector">
   <echo message="Compiling stand-alone application, using CVS versions of the MySQL connector"/>
 </target>
 
 <target name="package-stand-alone" depends="compile-stand-alone" 
         description="Package the stand-alone application">
   <echo message="Creating the stand-alone JAR file"/>
   <copy file="${database.properties}" todir="${build.stand-alone.root}"/>
   <jar destfile="${appName.jar}" basedir="${build.stand-alone.root}"/>
 </target>
 
 
 
 
 <target name="compile-web" depends="dir" description="Compile web application">
   <echo message="Compiling the web application"/>
   <javac destdir="${build.web.classes}">
     <src path="${src.shared.java}"/>
   </javac>
   <javac srcdir="${src.web.java}" destdir="${build.web.classes}">
     <classpath refid="build.classpath"/>
   </javac>
 </target>
 <target name="web-complete" 
         depends="build-mysql-connector, build-jstl, package-web" 
         description="Compile web application, 
                      using CVS versions of the MySQL connector and the JSTL">
   <echo message="Compiling web application, using CVS versions of the MySQL connector and the JSTL"/>
 </target>
 
 <target name="copy-web" depends="compile-web" description="Copy the web files">
   <echo message="Copying the web pages and configuration files"/>
   <copy todir="${build.web.root}">
     <fileset dir="${src.web.pages}"/>
   </copy>
   
   <copy todir="${build.web.tags}">
     <fileset dir="${src.web.tags}"/>
   </copy>
   <copy todir="${build.web.web-inf}">
     <fileset dir="${src.web.conf}">
       <include name="*.tld"/>
     </fileset>
   </copy>
   
   <copy todir="${build.web.lib}">
     <fileset dir="${lib}"/>
   </copy>
   
   <copy file="${database.properties}" todir="${build.web.classes}"/>
   
 </target>
 


 <target name="package-web" depends="compile-web" 
         description="Build the WAR file in one step">
   <echo message="Building the WAR file in one step"/> 
   <war destfile="${appName.war}" basedir="${src.web.pages}" 
        webxml="${src.web.conf}/web.xml">
     <lib dir="${lib}"/>
     <classes dir="${build.web.root}"/>
     <zipfileset dir="${src.web.tags}" prefix="WEB-INF/tags"/>
     <zipfileset file="${database.properties}" prefix="WEB-INF/classes"/>
     <zipfileset dir="${src.web.conf}" prefix="WEB-INF">
       <include name="*.tld"/>
     </zipfileset>
   </war>
 </target>
 
 
 
 <target name="build-both" 
         depends="package-stand-alone, package-web" 
         description="Compile both applications, 
                      without CVS versions of the MySQL connector and the JSTL">
   <echo message="Compiled both applications, without CVS versions of the MySQL connector and the JSTL"/>
 </target>
 <target name="build-all" 
         depends="stand-alone-complete, web-complete" 
         description="Compile both applications, 
                      using CVS versions of the MySQL connector and the JSTL">
   <echo message="Compiled both applications, using CVS versions of the MySQL connector and the JSTL"/>
 </target>




 <target name="download-servlet-jar" depends="dir" 
         description="Download the servlet JAR">
   <echo message="Downloading the servlet JAR"/>
   <get src="http://www.ibiblio.org/maven/servletapi/jars/servletapi-2.4.jar"
        dest="${servlet24.jar}"
        verbose="true"/>
 </target>
 
 
 
 
 
 <target name="download-jsp-jar" depends="dir" 
         description="Download the JSP JAR">
   <echo message="Downloading the JSP JAR"/>
   <get src="http://www.ibiblio.org/maven/jspapi/jars/jsp-api-2.0.jar"
        dest="${jsp20.jar}"
        verbose="true"/>
 </target>
 
 
 
 
 <target name="check-docs" 
         description="Check that the documentation is up to date">
   <echo message="Checking that the documentation is up to date"/>
   <condition property="docs.notRequired">
     <and>
       <uptodate targetfile="${dist}/${appName}-${package.docs}.zip">
         <srcfiles dir="${src}" includes="**"/>
       </uptodate>
       <uptodate targetfile="${dist}/${appName}-${package.docs}.tar.gz">
         <srcfiles dir="${src}" includes="**"/>
       </uptodate>
     </and>
   </condition>
 </target>  
 
 <target name="javadocs" depends="dir,check-docs" 
         description="Generate Javadocs for the application" 
         unless="docs.notRequired">
   <echo message="Generating Javadocs for the application"/>
   <javadoc destdir="${docs}/api" windowtitle="${javadoc.windowtitle}">
     <fileset refid="javadoc"/>
     <doctitle>
       ${javadoc.doctitle}
     </doctitle>
     <classpath refid="build.classpath"/>
     <link href="http://java.sun.ru/j2se/${javadoc.j2se.version}/docs/api"/>  
     <link href="http://java.sun.ru/j2ee/${javadoc.j2ee.version}/docs/api"/> 
   </javadoc>
 </target>
  
 <target name="javadocs-offline" depends="dir,check-docs"
         description="Generate Javadocs for the application, 
                      using offline package-list files"
         unless="docs.notRequired">
   <echo message="Generating Javadocs for the application, 
                  using offline package-list files"/>
   <javadoc destdir="${docs}/api" windowtitle="${javadoc.windowtitle}">
     <fileset refid="javadoc"/>
     <doctitle>
       ${javadoc.doctitle}
     </doctitle>
     <classpath refid="build.classpath"/>
     <link href="${javadoc.j2se.offline}" resolveLink="true"/>  
     <link href="${javadoc.j2ee.offline}" resolveLink="true"/> 
   </javadoc>
 </target>
 
 <target name="docs" depends="javadocs" 
         description="Assemble the documentation" unless="docs.notRequired">
   <echo message="Assembling the documentation"/>
   <copy todir="${docs}">
     <fileset dir="${src.shared.docs}">
       <include name="*.html"/>
     </fileset>
   </copy>
   <copy todir="${docs}/stand-alone">
     <fileset dir="${src.stand-alone.docs}">
       <include name="*.html"/>
     </fileset>
   </copy>
   <copy todir="${docs}/web">
     <fileset dir="${src.web.docs}">
       <include name="*.html"/>
     </fileset>
   </copy>
 </target>
 
 
 
 
 <target name="generate-hashes" description="Generate the hashes for a package">
   <echo message="Generating the hashes for ${file}"/>
   <checksum file="${dist}/${file}" forceOverwrite="true"/>
   <checksum file="${dist}/${file}" forceOverwrite="true" algorithm="SHA1"/>
   
   <delete failonerror="false">
     <fileset dir="." includes="**/${file}.asc"/>
   </delete>
   
   <exec executable="pgp" spawn="false" vmlauncher="false">
     <arg value="+force"/>
     <arg value="+batchmode"/>
     <arg value="-s"/>
     <arg value="-b"/>
     <arg value="-o"/>
     <arg value="${build}/${file}.asc"/>
     <arg value="-z"/>
     <arg value="${pgp.password}"/>
     <arg value="${dist}/${file}"/>
   </exec>
   
   <copy file="${build}/${file}.asc" todir="${dist}" failonerror="false"/>
 </target>
 
 <target name="zip-docs" depends="docs" description="Zip the documentation">
   <echo message="Zipping the documentation"/>
   <zip destfile="${dist}/${appName}-${package.docs}.zip">
     
     <fileset dir="${docs.all.dir}">
       <patternset refid="docs.all"/>
     </fileset>
     
     <fileset dir="${docs.misc.dir}">
       <patternset refid="docs.misc"/>
     </fileset>
   </zip> 
   <antcall target="generate-hashes">
     <param name="file" value="${appName}-${package.docs}.zip"/>
   </antcall>
 </target>
 
 <target name="zip-src" depends="zip-docs" 
         description="Zip the source and documentation together">
   <echo message="Zipping the source and documentation together"/>
   <zip destfile="${dist}/${appName}-src.zip">
     
     <zipfileset src="${dist}/${appName}-${package.docs}.zip"/>
     <fileset dir="${src.files.dir}">
       <patternset refid="src.files"/>
     </fileset>
   </zip> 
   <checksum file="${dist}/${appName}-src.zip" forceOverwrite="true"/>
   <checksum file="${dist}/${appName}-src.zip" forceOverwrite="true" 
             algorithm="SHA1"/>
 </target>
 
 <target name="zip-bin-stand-alone" depends="package-stand-alone,zip-docs" 
         description="Zip the binary stand-alone distribution 
                      with the documentation">
   <echo message="Zipping the binary stand-alone distribution with the documentation"/>
   <zip destfile="${dist}/${appName}-${package.stand-alone}-bin.zip">
     
     <zipfileset src="${dist}/${appName}-${package.docs}.zip"/>
     
     <zipfileset dir="${dist}" prefix="lib">
       <patternset refid="bin.jar"/>
     </zipfileset>
     <fileset dir=".">
       <include name="${mysql.jar}"/>
     </fileset>
   </zip> 
   <checksum file="${dist}/${appName}-${package.stand-alone}-bin.zip" 
             forceOverwrite="true"/>
   <checksum file="${dist}/${appName}-${package.stand-alone}-bin.zip" 
             forceOverwrite="true" algorithm="SHA1"/>
 </target>
 
 <target name="zip-bin-web" depends="package-web,zip-docs" 
         description="Zip the binary web distribution with the documentation">
   <echo message="Zipping the binary web distribution with the documentation"/>
   <zip destfile="${dist}/${appName}-${package.web}-bin.zip">
     
     <zipfileset src="${dist}/${appName}-${package.docs}.zip"/>
     
     <fileset dir="${dist}">
       <patternset refid="bin.war"/>
     </fileset>
   </zip> 
   <checksum file="${dist}/${appName}-${package.web}-bin.zip" 
             forceOverwrite="true"/>
   <checksum file="${dist}/${appName}-${package.web}-bin.zip" 
             forceOverwrite="true" algorithm="SHA1"/>
 </target>
 
 <target name="zip-bin" depends="zip-bin-stand-alone,zip-bin-web" 
         description="Zip the binary distribution with the documentation">
   <echo message="Zipping the binary distribution with the documentation"/>
   <zip destfile="${dist}/${appName}-bin.zip" 
        duplicate="preserve" update="true">
     <zipgroupfileset dir="${dist}" includes="*.zip"/>
   </zip>
   <checksum file="${dist}/${appName}-bin.zip" forceOverwrite="true"/>
   <checksum file="${dist}/${appName}-bin.zip" forceOverwrite="true" 
             algorithm="SHA1"/>
 </target>
 
 <target name="zip-all" depends="zip-src,zip-bin" 
         description="Zip the binary and source distributions">
   <echo message="Zipped the binary and source distributions"/>
 </target>
 
 
 
 
 <target name="tar-docs" depends="docs" description="Tar the documentation">
   <echo message="Tarring the documentation"/>
   <tar destfile="${dist}/${appName}-${package.docs}.tar.gz" compression="gzip">
     
     <tarfileset dir="${docs.all.dir}">
       <patternset refid="docs.all"/>
     </tarfileset>
     
     <tarfileset dir="${docs.misc.dir}">
       <patternset refid="docs.misc"/>
     </tarfileset>
   </tar> 
   <checksum file="${dist}/${appName}-${package.docs}.tar.gz" 
             forceOverwrite="true"/>
   <checksum file="${dist}/${appName}-${package.docs}.tar.gz" 
             forceOverwrite="true" algorithm="SHA1"/>
 </target>
 
 <target name="tar-src" depends="tar-docs"
         description="Tar the documentation">
   <echo message="Tarring the documentation"/>
   <tar destfile="${dist}/${appName}-src.tar.gz" compression="gzip">
     
     <tarfileset dir="${docs.all.dir}">
       <patternset refid="docs.all"/>
     </tarfileset>
     
     <tarfileset dir="${docs.misc.dir}">
       <patternset refid="docs.misc"/>
     </tarfileset>
     
     <tarfileset dir="${src.files.dir}">
       <patternset refid="src.files"/>
     </tarfileset>
   </tar> 
   <checksum file="${dist}/${appName}-src.tar.gz" forceOverwrite="true"/>
   <checksum file="${dist}/${appName}-src.tar.gz" forceOverwrite="true" 
             algorithm="SHA1"/>
 </target>
 
 <target name="tar-bin-stand-alone" depends="package-stand-alone,tar-docs" 
         description="Tar the binary stand-alone distribution 
                      with the documentation">
   <echo message="Tarring the binary stand-alone distribution with the documentation"/>
   <tar destfile="${dist}/${appName}-${package.stand-alone}-bin.tar.gz" 
        compression="gzip">
     
     <tarfileset dir="${docs.all.dir}">
       <patternset refid="docs.all"/>
     </tarfileset>
     
     <tarfileset dir="${docs.misc.dir}">
       <patternset refid="docs.misc"/>
     </tarfileset>
     
     <tarfileset dir="${dist}" prefix="lib">
       <patternset refid="bin.jar"/>
     </tarfileset>
     <tarfileset dir=".">
       <include name="${mysql.jar}"/>
     </tarfileset>    </tar> 
   <checksum file="${dist}/${appName}-${package.stand-alone}-bin.tar.gz" 
             forceOverwrite="true"/>
   <checksum file="${dist}/${appName}-${package.stand-alone}-bin.tar.gz" 
             forceOverwrite="true" algorithm="SHA1"/>
 </target>
 
 <target name="tar-bin-web" depends="package-web,tar-docs" 
         description="Tar the binary web distribution with the documentation">
   <echo message="Tarring the binary web distribution with the documentation"/>
   <tar destfile="${dist}/${appName}-${package.web}-bin.tar.gz" 
        compression="gzip">
     
     <tarfileset dir="${docs.all.dir}">
       <patternset refid="docs.all"/>
     </tarfileset>
     
     <tarfileset dir="${docs.misc.dir}">
       <patternset refid="docs.misc"/>
     </tarfileset>
     
     <tarfileset dir="${dist}">
       <patternset refid="bin.war"/>
     </tarfileset>
   </tar> 
   <checksum file="${dist}/${appName}-${package.web}-bin.tar.gz" 
             forceOverwrite="true"/>
   <checksum file="${dist}/${appName}-${package.web}-bin.tar.gz" 
             forceOverwrite="true" algorithm="SHA1"/>
 </target>
 
 <target name="tar-bin" depends="tar-bin-stand-alone,tar-bin-web" 
         description="Tar the binary distribution with the documentation">
   <echo message="Tarring the binary distribution with the documentation"/>
   <tar destfile="${dist}/${appName}-bin.tar.gz" compression="gzip">
     
     <tarfileset dir="${docs.all.dir}">
       <patternset refid="docs.all"/>
     </tarfileset>
     
     <tarfileset dir="${docs.misc.dir}">
       <patternset refid="docs.misc"/>
     </tarfileset>
     
     <tarfileset dir="${src.files.dir}">
       <patternset refid="src.files"/>
     </tarfileset>
     
     <tarfileset dir="${dist}" prefix="lib">
       <patternset refid="bin.jar"/>
     </tarfileset>
     <tarfileset dir=".">
       <include name="${mysql.jar}"/>
     </tarfileset>
     
     <tarfileset dir="${dist}">
       <patternset refid="bin.war"/>
     </tarfileset>
   </tar>
   <checksum file="${dist}/${appName}-bin.tar.gz" forceOverwrite="true"/>
   <checksum file="${dist}/${appName}-bin.tar.gz" forceOverwrite="true" 
             algorithm="SHA1"/>
 </target>
 
 
  
 
 <target name="tar-bin-web-new" depends="package-web,tar-docs,zip-bin-web" 
         description="Tar the binary web distribution with the documentation">
   <echo message="Tarring the binary web distribution with the documentation"/>
   <unzip src="${dist}/${appName}-${package.web}-bin.zip" dest="${tmp}/web"/>
   <tar destfile="${dist}/${appName}-${package.web}-bin.tar.gz" 
        compression="gzip">
     <tarfileset dir="${tmp}/web"/>
   </tar>
   <checksum file="${dist}/${appName}-${package.web}-bin.tar.gz" 
             forceOverwrite="true"/>
   <checksum file="${dist}/${appName}-${package.web}-bin.tar.gz" 
             forceOverwrite="true" algorithm="SHA1"/>
 </target>
 
 <target name="tar-bin-new" 
         depends="zip-bin,tar-bin-stand-alone,tar-bin-web-new"
         description="Tar the binary distribution with the documentation">
   <echo message="Tarring the binary distribution with the documentation"/>
   <delete failonerror="false" includeemptydirs="true">
     <fileset dir="${tmp}" includes="**"/>
   </delete>
   <unzip src="${dist}/${appName}-bin.zip" dest="${tmp}"/>
   <tar destfile="${dist}/${appName}-bin.tar.gz" compression="gzip">
     <tarfileset dir="${tmp}"/>
   </tar>
   <checksum file="${dist}/${appName}-bin.tar.gz" forceOverwrite="true"/>
   <checksum file="${dist}/${appName}-bin.tar.gz" forceOverwrite="true" 
             algorithm="SHA1"/>
 </target>
 
 <target name="tar-all" depends="tar-src,tar-bin" 
         description="Tar the binary and source distributions">
   <echo message="Tarred the binary and source distributions"/>
 </target>
 
 
 
 
 
 
 


 <target name="ftp-docs" depends="zip-docs,tar-docs" 
         description="Place the documentation on FTP">
   <echo message="Placing the documentation on FTP"/>
   <ftp server="${ftp.server}"
        userid="${ftp.user}"
        password="${ftp.password}"
        remotedir="${ftp.src.dir}"
        action="send"
        newer="true"
        timediffauto="true">
     <fileset dir="${dist}">
       <include name="${appName}-${package.docs}.*"/>
     </fileset>
   </ftp>
 </target>
 
 <target name="ftp-src" depends="zip-src,tar-src" 
         description="Place the source code on FTP">
   <echo message="Placing the source code on FTP"/>
   <ftp server="${ftp.server}"
        userid="${ftp.user}"
        password="${ftp.password}"
        remotedir="${ftp.src.dir}"
        action="send"
        newer="true"
        timediffauto="true">
     <fileset dir="${dist}">
       <include name="${appName}-src.*"/>
     </fileset>
   </ftp>
 </target>
 
 <target name="ftp-bin" depends="zip-bin,tar-bin" 
         description="Place the binaries on FTP">
   <echo message="Placing the binaries on FTP"/>
   <ftp server="${ftp.server}"
        userid="${ftp.user}"
        password="${ftp.password}"
        remotedir="${ftp.bin.dir}"
        action="send"
        newer="true"
        timediffauto="true">
     <fileset dir="${dist}">
       <include name="${appName}*bin*"/>
     </fileset>
   </ftp>
 </target>
 
 <target name="ftp" description="Place everything on FTP">
   <echo message="Placing everything on FTP"/>
   <antcall target="ftp-docs"/>
   <antcall target="ftp-src"/>
   <antcall target="ftp-bin"/>
 </target>
 



 <target name="email-docs" depends="zip-docs,tar-docs" 
         description="E-mailing the documentation">
   <echo message="E-mailing the documentation"/>
   <mail from="${mail.from}"
         tolist="${mail.tolist}"
         mailhost="${mail.mailhost}"
         user="${mail.user}"
         password="${mail.password}"
         subject="${mail.subject}">
     <message>
       ${mail.message.docs}
     </message>
     <fileset dir="${dist}">
       <include name="${appName}-${package.docs}.*"/>
     </fileset>
   </mail>
 </target>
 
 
 
 
 <target name="deploy-copy-files" depends="copy-web,start-tomcat" 
         description="Deploy the application by copying it to Tomcat">
   <echo message="Copying the expanded web application to CATALINA_HOME"/>
   <property environment="env"/>
   <copy todir="${build.web.web-inf}" file="${src.web.conf}/web.xml"/>
   <copy todir="${env.CATALINA_HOME}/webapps/${appName}">
     <fileset dir="${build.web.root}"/>
   </copy>
 </target>
 
 <target name="deploy-copy-war" depends="package-web,start-tomcat" 
         description="Deploy the WAR by copying it to Tomcat">
   <echo message="Copying the WAR to CATALINA_HOME"/>
   <property environment="env"/>
   <copy file="${appName.war}" todir="${env.CATALINA_HOME}/webapps"/>
 </target>
 
 <target name="deploy-context" depends="copy-web,start-tomcat" 
         description="Deploy the web application using a context XML file">
   <echo message="Deploying the web application using a context XML file"/>
   <property environment="env"/>
   <copy todir="${build.web.web-inf}" file="${src.web.conf}/web.xml"/>
   <copy todir="${env.CATALINA_HOME}/conf/Catalina/localhost" 
         file="${src.web.conf}/${appName}.xml"/>
 </target>
 
 <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/>
 
 <target name="deploy" depends="package-web,start-tomcat" 
         description="Hot deploy the application">
   <echo message="Deploying the WAR to Tomcat"/>
   <deploy url="${manager.url}"
           username="${manager.user}"
           password="${manager.password}"  
           path="/${appName}"
           war="file:${appName.war}"
           update="true"/>
 </target>
 
 <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"/>
 
 <target name="undeploy" description="Undeploy the application">
   <echo message="Undeploying the WAR"/>
   <undeploy url="${manager.url}"
             username="${manager.user}"   
             password="${manager.password}"
             path="/${appName}"/>
 </target>
 
 
 
 
 <target name="database" 
         description="Prepare the database by creating it and inserting data">
   <echo message="Preparing the database by creating it and inserting data"/>
   <property file="${database.properties}"/>
   <sql driver="${driver.name}"
        url="${database.root}"
        userid="${database.user}"
        password="${database.password}">
     <classpath refid="build.classpath"/>
     <transaction src="${src.shared.conf}/${drop.sql}"/>
     <transaction src="${src.shared.conf}/${create.sql}"/>
     <transaction src="${src.shared.conf}/${insert.sql}"/>
   </sql>
 </target>
 
 
 <target name="set-argument-defaults" depends="package-stand-alone" 
         description="Set the defaults for the command-line arguments">
   <echo message="Setting the defaults for the command-line arguments"/>
   
   <condition property="arg0" value="">
     <not>
       <isset property="${arg0}"/>
     </not>
   </condition>
   
   <condition property="arg1" value="">
     <not>
       <isset property="${arg1}"/>
     </not>
   </condition>
 </target>
 
 <target name="run-stand-alone-java" depends="set-argument-defaults" 
         description="Run the stand-alone application">
   <echo message="Running the stand-alone application"/>
   
   <property name="results.file" value="results.txt"/>
   
   <tstamp/>
   <java classname="org.mwrm.plants.client.PlantClient">
     <arg value="${arg0}"/>
     <arg value="${arg1}"/>
     <classpath refid="build.classpath"/>
     <redirector output="${DSTAMP}-${TSTAMP}-${results.file}"/>
   </java>
 </target>
 
 <target name="check-port" description="Check whether Tomcat is running">
   <echo message="Checking whether Tomcat is running"/>
   <condition property="tomcat.running">
     <socket server="${tomcat.host}" port="${tomcat.port}"/> 
   </condition>
 </target>
 
 <target name="start-tomcat" depends="check-port" 
         description="Start Tomcat if it isn"t running" unless="tomcat.running">
   <echo message="Starting Tomcat"/>
   <property environment="env"/>
   <exec executable="${env.CATALINA_HOME}/bin/${tomcat.executableName}" 
         spawn="true" vmlauncher="false"/>
   <sleep seconds="15"/>
   
 </target>
 <target name="clean" description="Clean up the working directories">
   <echo message="Cleaning up"/>
   <delete dir="${build}"/>
 </target>

</project>

      </source>
   
  
 
  



Your ant script to build table

   <source lang="java">

<project name="Database creation" basedir=".">

  <property name="sql.driver" value="org.gjt.mm.mysql.Driver"/>
  <property name="sql.url" value="jdbc:mysql://localhost/sample_project"/>
  <property name="sql.user" value=""/>
  <property name="sql.pass" value=""/>
  <target name="createTables_MySQL">
     <sql driver="${sql.driver}" url="${sql.url}" userid="${sql.user}" password="${sql.pass}" >
          <classpath>
           <pathelement location="mysql-connector-java-3.0.9-stable-bin.jar"/>
          </classpath>   
          use sample_project;
          <transaction src="employees.sql"/>
          <transaction src="project.sql"/>
          <transaction src="timetable.sql"/>
     </sql>
  </target>
  <target name="createDB_MySQL">
     <sql driver="${sql.driver}" 
          url="${sql.url}" 
          userid="${sql.user}" 
          password="${sql.pass}"
          classpath="mysql-connector-java-3.0.9-stable-bin.jar"
          src="sample_project.sql"/>
  </target>
  <target name="dropDB_MySQL">
     <input message="Do you really want to delete this table (y/n)?" validargs="y,n" addproperty="do.delete" /> 
     <condition property="do.abort"> 
           <equals arg1="n" arg2="${do.delete}"/> 
     </condition> 
     <fail if="do.abort">Build aborted by user.</fail> 
     <sql driver="${sql.driver}" url="${sql.url}" userid="${sql.user}" password="${sql.pass}" >
          <classpath>
           <pathelement location="mysql-connector-java-3.0.9-stable-bin.jar"/>
          </classpath>  
          drop database sample_project;
     </sql>
  </target>

</project>



      </source>