- Apache ANT 教程
- ANT-首页
- ANT - 简介
- ANT - 环境设置
- ANT - 构建文件
- ANT - 属性任务
- ANT - 属性文件
- ANT - 数据类型
- ANT - 建筑项目
- ANT - 构建文档
- ANT - 创建 JAR 文件
- ANT - 创建 WAR 文件
- ANT - 包装应用
- ANT - 部署应用程序
- ANT - 执行 Java 代码
- ANT - Eclipse 集成
- ANT - JUnit 集成
- ANT - 扩展 Ant
- Apache ANT 有用的示例
- ANT - 使用令牌
- ANT - 使用命令行参数
- ANT - 使用 If Else 参数
- ANT - 自定义组件
- ANT - 监听器和记录器
- Apache ANT 资源
- ANT - 快速指南
- ANT - 有用的资源
- ANT-讨论
Ant - 包装应用
我们已经使用Hello World Fax Web 应用程序零碎地了解了 Ant 的不同方面。
现在,是时候将所有内容放在一起创建一个完整的 build.xml 文件了。请考虑build.properties和build.xml文件,如下所示 -
构建属性
下面给出了 build.properties 文件。
deploy.path=c:\tomcat6\webapps
构建.xml
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>
在上面提到的例子中 -
我们首先在构建属性文件中将Tomcat 中的webapps 文件夹的路径声明为deploy.path变量。
我们还在src.dir变量中声明 java 文件的源文件夹。
然后,我们在web.dir变量中声明 Web 文件的源文件夹。javadoc.dir是存放java文档的文件夹,build.dir是存放构建输出文件的路径。
之后,我们声明 Web 应用程序的名称,在我们的例子中是传真。
我们还定义了主类路径,其中包含项目的 WEB-INF/lib 文件夹中存在的 JAR 文件。
我们还将build.dir中存在的类文件包含在主类路径中。
Javadoc 目标生成项目所需的 javadoc,而使用目标用于打印构建文件中存在的公共目标。
上面的示例显示了两个部署目标:deploy和deploywar。
部署目标将文件从 Web 目录复制到部署目录,并保留最后修改的日期时间戳。当部署到支持热部署的服务器时,这非常有用。
clean 目标会清除所有先前构建的文件。
部署war目标构建war文件,然后将war文件复制到应用程序服务器的deploy目录。