Mega Code Archive

 
Categories / Java / Ant
 

Use main ant build file call sub build file

<?xml version="1.0"?> <project name="Example Application Build" default="build-both" basedir=".">   <property file="build.properties"/>   <!-- ################################### -->   <!-- The master build classpath          -->    <!-- ################################### -->   <path id="build.classpath">     <pathelement location="${servlet24.jar}"/>     <pathelement location="${jsp20.jar}"/>     <pathelement location="${mysql.jar}"/>     <pathelement path="${appName.jar}"/>   </path>   <!-- ################################### -->   <!-- The test build classpath            -->    <!-- ################################### -->   <path id="test.classpath">     <path refid="build.classpath"/>     <fileset dir="${httpunit.home}/jars">       <include name="*.jar"/>       <exclude name="junit.jar"/>     </fileset>     <pathelement location="${junit.jar}"/>     <pathelement location="${httpunit.jar}"/>     <pathelement location="${checkstyle.jar}"/>     <pathelement location="${test.build}"/>   </path>   <!-- ################################### -->   <!-- Javadoc file sets                   -->    <!-- ################################### -->   <fileset id="javadoc" dir="${src}">     <exclude name="*/conf/**"/>     <exclude name="*/docs/*"/> <!-- Add to the CE check of 6 -->     <exclude name="**/package.html"/>     <exclude name="**/*.xml"/>     <include name="shared/**"/>     <include name="stand-alone/**"/>     <include name="web/java/**"/>   </fileset>     <!-- ##################################################### -->   <!-- Properties and pattern sets for the packaging targets -->    <!-- ##################################################### -->   <!-- The value of each property in this section is the setting -->   <!-- for the 'dir' attribute of file sets and tar file sets -->    <!-- Property and pattern set for the documentation -->   <property name="docs.all.dir" value="${build}"/>   <!-- Tar file sets cannot use file sets, so we must use a pattern set -->   <patternset id="docs.all">     <include name="docs/**"/>   </patternset>   <!-- Property and pattern set for the license and README -->   <property name="docs.misc.dir" value="${src.shared.docs}"/>   <!-- Tar file sets cannot use file sets, so we must use a pattern set -->   <patternset id="docs.misc">     <include name="README"/>     <include name="LICENSE"/>   </patternset>      <!-- Property and pattern set for the source, -->   <!-- build.xml, and build.properties -->   <property name="src.files.dir" value="."/>   <!-- Tar file sets cannot use file sets, so we must use a pattern set -->   <patternset id="src.files">     <include name="${src}/**"/>     <include name="build.*"/>   </patternset>   <!-- Pattern set for the binary JAR -->   <!-- Nothing else is needed because the directory that contains it -->   <!-- is already in the ${dist} property and it's used in a zip file set -->   <!-- as well as a tar file set -->    <patternset id="bin.jar">     <include name="*.jar"/>   </patternset>   <!-- Pattern set for the binary WAR -->   <!-- Nothing else is needed because the directory that contains it -->   <!-- is already in the ${dist} property and it's used in a zip file set -->   <!-- as well as a tar file set -->    <patternset id="bin.war">     <include name="*.war"/>   </patternset>   <!-- ################################### -->   <!-- Task definitions                    -->    <!-- ################################### -->   <!-- The deploy task for web applications on Tomcat -->   <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/>    <!-- The undeploy task for web applications on Tomcat -->   <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"/>   <!-- ################################### -->   <!-- Initialization target               -->    <!-- ################################### -->   <!-- Create the working directories -->   <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>   <!-- ######################## -->   <!-- Download the servlet JAR -->   <!-- ######################## -->      <!-- Download the servlet JAR -->   <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>   <!-- ########################### -->   <!-- The stand-alone application -->   <!-- ########################### -->   <!-- Compile the stand-alone application -->   <target name="package-stand-alone" depends="dir" description="Compile stand-alone application">     <echo message="Compiling the stand-alone application"/>     <!-- First let's compile the shared code -->     <property name="destination" value="${build.stand-alone.root}"/>     <ant antfile="${build.shared.xml}" inheritRefs="true"/>     <ant antfile="${build.stand-alone.xml}" inheritRefs="true"/>   </target>   <target name="stand-alone-complete" depends="dir" 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"/>     <ant antfile="${build.mysql.xml}" inheritRefs="true"/>     <antcall target="package-stand-alone"/>   </target>   <!-- Run the stand-alone application -->   <!-- First set the argument defaults -->   <!-- The Java execution and the script use them depends="stand-alone" -->   <target name="set-argument-defaults"            description="Set the defaults for the command-line arguments">     <echo message="Setting the defaults for the command-line arguments"/>     <!-- Set a default for the first argument -->     <condition property="arg0" value="">       <not>         <isset property="${arg0}"/>       </not>     </condition>     <!-- Set a default for the second argument -->     <condition property="arg1" value="">       <not>         <isset property="${arg1}"/>       </not>     </condition>   </target>   <!-- This first target is a Java invocation -->   <target name="run-stand-alone-java" depends="set-argument-defaults, package-stand-alone" description="Run the stand-alone application">     <echo message="Running the stand-alone application"/>     <!-- We want to make a file for each set of results -->     <property name="results.file" value="results.txt"/>     <!-- The time stamp will uniquely identify the file -->     <tstamp>       <format property="TSTAMP" pattern="HHmm"/>     </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>   <!-- ########################### -->   <!-- The web application         -->   <!-- ########################### -->   <!-- Build the WAR file in one step -->   <target name="package-web" depends="dir" description="Build the WAR file in one step">     <echo message="Building the WAR file in one step"/>      <!-- First let's compile the shared code -->     <property name="destination" value="${build.stand-alone.root}"/>     <ant antfile="${build.shared.xml}" inheritRefs="true"/>     <ant antfile="${build.web.xml}" inheritRefs="true"/>   </target>    <target name="web-complete" description="Compile web application, using CVS versions of the MySQL connector and the JSTL">     <echo message="Compiled web application, using CVS versions of the MySQL connector and the JSTL"/>     <ant antfile="${build.mysql.xml}" inheritRefs="true"/>     <ant antfile="${build.jstl.xml}" inheritRefs="true"/>     <antcall target="package-web"/>   </target>   <!-- Check whether Tomcat is running -->   <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>   <!-- Start Tomcat if it isn't running -->   <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="10"/>   </target>   <!-- Start Tomcat if it isn't running --> <!--   <target name="start-tomcat" depends="check-port"            description="Start Tomcat if it isn't running" unless="tomcat.running">     <echo message="Starting Tomcat"/> -->     <!-- Set the executable property according to OS --> <!--     <condition property="executable" value="${tomcat.executableName}.bat">       <os family="windows"/>     </condition>     <condition property="executable" value="${tomcat.executableName}.sh">       <os family="unix"/>     </condition>     <property environment="env"/>     <exec executable="${env.CATALINA_HOME}/bin/${executable}" spawn="true"/>     <sleep seconds="15"/>   </target > -->   <!-- ######################################## -->   <!-- Targets that work with both applications -->   <!-- ######################################## -->   <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="clean" description="Clean up the working directories">     <echo message="Cleaning up"/>     <delete dir="${build}"/>   </target>   <!-- Zip the binary and source distributions -->   <target name="zip-all" depends="package-stand-alone, package-web"           description="Zip the binary and source distributions">     <echo message="Zipping the binary and source distributions"/>     <ant antfile="${build.package.xml}" target="zip-all" inheritRefs="true"/>   </target>   <!-- Tar the binary and source distributions -->   <target name="tar-all" depends="package-stand-alone, package-web"           description="Tar the binary and source distributions">     <echo message="Tarring the binary and source distributions"/>     <ant antfile="${build.package.xml}" target="tar-all" inheritRefs="true"/>   </target>   <!-- Create all the packages -->   <target name="package-all" depends="package-stand-alone, package-web" description="Create all the packages">     <echo message="Creating all the packages"/>     <ant antfile="${build.package.xml}" inheritRefs="true"/>   </target>   <!-- #################### -->   <!-- Distribution targets -->   <!-- #################### -->   <!-- ################### -->   <!-- FTP targets         -->   <!-- ################### -->   <!-- Place the documentation on FTP -->   <target name="ftp-docs" depends="package-all" 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>   <!-- Place the source code on FTP -->   <target name="ftp-src" depends="package-all" 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>   <!-- Place the binaries on FTP -->   <target name="ftp-bin" depends="package-all"           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>   <!-- Place everything on FTP -->   <target name="ftp" description="Place everything on FTP">     <echo message="Placing everything on FTP"/>     <input message="Please enter your username." addproperty="ftp.user"/>     <input message="Please enter your password." addproperty="ftp.password"/>     <splash showduration="0"/>     <antcall target="ftp-docs"/>     <antcall target="ftp-src"/>     <antcall target="ftp-bin"/>   </target>   <!-- ################### -->   <!-- Email targets       -->   <!-- ################### -->   <!-- Email the documentation -->   <target name="email-docs" depends="package-all" description="Email the documentation">     <echo message="Emailing the documentation"/>     <mail from="${mail.from}"           tolist="${mail.tolist}"           message="${mail.message.docs}"           mailhost="${mail.mailhost}"           user="${mail.user}"           password="${mail.password}"           subject="${mail.subject}">       <fileset dir="${dist}">         <include name="${appName}-${package.docs}.*"/>       </fileset>     </mail>   </target>   <!-- Email the source -->   <target name="email-src" depends="package-all" description="Email the source">     <echo message="Emailing the source"/>     <mail from="${mail.from}"           tolist="${mail.tolist}"           message="${mail.message.src}"           mailhost="${mail.mailhost}"           user="${mail.user}"           password="${mail.password}"           subject="${mail.subject}">       <fileset dir="${dist}">         <include name="${appName}-src.*"/>       </fileset>     </mail>   </target>   <!-- Email the binaries -->   <target name="email-bin" depends="package-all" description="Email the binaries">     <echo message="Emailing the binaries"/>     <mail from="${mail.from}"           tolist="${mail.tolist}"           message="${mail.message.bin}"           mailhost="${mail.mailhost}"           user="${mail.user}"           password="${mail.password}"           subject="${mail.subject}">       <fileset dir="${dist}">         <include name="${appName}*bin*"/>       </fileset>     </mail>   </target>   <!-- Email everything -->   <target name="email" description="Email everything">     <echo message="Emailing everything"/>     <antcall target="email-docs"/>     <antcall target="email-src"/>     <antcall target="email-bin"/>   </target>   <!-- ################################ -->   <!-- Deploy the web application       -->   <!-- ################################ -->   <!-- 1. Copy the expanded web application --> <!--   <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> -->   <!-- 2. Copy the WAR -->   <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>   <!-- 3. Deploy the web application using a context XML file --> <!--   <target name="deploy-context" depends="copy-web"            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> -->   <!-- 4. Deploy the WAR using the manager application -->   <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>   <!-- Undeploy the web application -->   <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>   <!-- ################################# -->   <!-- Tasks that set up the environment -->   <!-- ################################# -->   <!-- Prepare the database by creating it and inserting data -->   <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>   <!-- Prepare the database by creating it and inserting data -->   <target name="database-drop"            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}"/>     </sql>   </target>   <!-- ################################### -->   <!-- Testing targets                     -->    <!-- ################################### -->   <!-- Run the JUnit tests -->   <target name="test" depends="package-stand-alone, deploy-copy-war" description="Run the JUnit tests">     <echo message="Running the JUnit tests"/>     <ant antfile="${build.test.xml}" target="test" inheritRefs="true"/>   </target>   <!-- Check the coding conventions -->   <target name="coding-style" description="Check the coding conventions">     <echo message="Checking the coding conventions"/>     <ant antfile="${build.test.xml}" target="coding-style" inheritRefs="true"/>   </target>   <!-- Run all the tests -->   <target name="test-all" depends="package-stand-alone, deploy-copy-war" description="Run all the tests">     <echo message="Running all the tests"/>     <ant antfile="${build.test.xml}" inheritRefs="true"/>   </target>   <!-- Run the tests -->   <target name="test-target" depends="package-stand-alone,deploy-copy-war">     <ant antfile="${build.test.xml}" target="${target}" inheritRefs="true"/>       </target>   <!-- #################### -->   <!-- Managing subprojects -->   <!-- #################### -->   <target name="stand-alone-target" depends="dir">     <ant antfile="${build.stand-alone.xml}" target="${target}"           inheritRefs="true"/>   </target>   <target name="web-target" depends="dir">     <ant antfile="${build.web.xml}" target="${target}" inheritRefs="true"/>   </target > </project>                          AntMainCallSub.zip( 137 k)