转载

Ant打包应用

   

我们已经知道Ant使用的Hello World Fax 的Web应用程序中零碎的不同。

现在是时候把一切融合在一起,以创建一个完整的和完整的build.xml文件。考虑build.properties和build.xml文件列表如下:

build.properties

 deploy.path=c:/tomcat6/webapps

build.xml

 <?xml version="1.0"?>  <project name="fax" basedir="." default="usage">     <property file="build.properties"/>     <property name="src.dir" value="src"/>     <property name="web.dir" value="war"/>     <property name="javadoc.dir" value="doc"/>     <property name="build.dir" value="${web.dir}/WEB-INF/classes"/>     <property name="name" value="fax"/>      <path id="master-classpath">         <fileset dir="${web.dir}/WEB-INF/lib">             <include name="*.jar"/>         </fileset>         <pathelement path="${build.dir}"/>     </path>          <target name="javadoc">       <javadoc packagenames="faxapp.*" sourcepath="${src.dir}"        destdir="doc" version="true" windowtitle="Fax Application">         <doctitle><![CDATA[<h1>= Fax Application            =</h1>]]></doctitle>         <bottom><![CDATA[Copyright © 2011. All            Rights Reserved.]]></bottom>         <group title="util packages" packages="faxapp.util.*"/>         <group title="web packages" packages="faxapp.web.*"/>         <group title="data packages"            packages="faxapp.entity.*:faxapp.dao.*"/>       </javadoc>     </target>      <target name="usage">         <echo message=""/>         <echo message="${name} build file"/>         <echo message="-----------------------------------"/>         <echo message=""/>         <echo message="Available targets are:"/>         <echo message=""/>         <echo message="deploy    --> Deploy application            as directory"/>         <echo message="deploywar --> Deploy application            as a WAR file"/>         <echo message=""/>     </target>      <target name="build" description="Compile main        source tree java files">         <mkdir dir="${build.dir}"/>         <javac destdir="${build.dir}" source="1.5"            target="1.5" debug="true"           deprecation="false" optimize="false" failonerror="true">             <src path="${src.dir}"/>             <classpath refid="master-classpath"/>         </javac>     </target>      <target name="deploy" depends="build"        description="Deploy application">         <copy todir="${deploy.path}/${name}"            preservelastmodified="true">             <fileset dir="${web.dir}">                 <include name="**/*.*"/>             </fileset>         </copy>     </target>      <target name="deploywar" depends="build"        description="Deploy application as a WAR file">         <war destfile="${name}.war"              webxml="${web.dir}/WEB-INF/web.xml">             <fileset dir="${web.dir}">                 <include name="**/*.*"/>             </fileset>         </war>         <copy todir="${deploy.path}" preservelastmodified="true">             <fileset dir=".">                 <include name="*.war"/>             </fileset>         </copy>     </target>           <target name="clean" description="Clean output directories">         <delete>             <fileset dir="${build.dir}">                 <include name="**/*.class"/>             </fileset>         </delete>     </target>   </project>

在这个例子中,我们首先声明的路径的webapps文件夹中的Tomcat在生成属性文件作为deploy.path变量。我们还声明的源文件夹src.dir的变量的java文件。然后我们声明的源文件夹中web.dir变量的网页文件。 javadoc.dir是用于存储Java文档的文件夹,build.dir是用于存储生成的输出文件的路径。

然后我们声明的Web应用程序,这是 Fax 在我们的例子中的名称。

我们还定义了主类路径的conains存在于项目的WEB-INF/lib文件夹中的JAR文件。我们还包括了类文件呈现在build.dir在主类路径

Javadoc的目标生产项目所需的Javadoc和使用对象是用来打印,是目前在构建文件的共同目标。

上面的例子显示了两个部署目标 - 部署和deploywar目标

部署目标文件从web目录下的文件复制到deploy目录保留最后修改的日期时间戳记。部署到支持热部署一台服务器时,这是很有用的。

clean目标清除所有先前建立的文件。

部署war目标构建war文件,然后复制war文件到应用服务器的部署目录。

   
正文到此结束
Loading...