- 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 - 项目构建
现在我们已经学习了Ant中的数据类型,是时候将这些知识付诸实践了。本章我们将构建一个项目。本章的目标是构建一个Ant文件,编译Java类并将它们放置在WEB-INF\classes文件夹中。
考虑以下项目结构:
数据库脚本存储在db文件夹中。
Java源代码存储在src文件夹中。
图像、js、META-INF、样式(css)存储在war文件夹中。
Java服务器页面(JSP)存储在jsp文件夹中。
第三方jar文件存储在lib文件夹中。
Java类文件存储在WEB-INF\classes文件夹中。
本项目构成本教程其余部分的Hello World传真应用程序。
C:\work\FaxWebApplication>tree Folder PATH listing Volume serial number is 00740061 EC1C:ADB1 C:. +---db +---src . +---faxapp . +---dao . +---entity . +---util . +---web +---war +---images +---js +---META-INF +---styles +---WEB-INF +---classes +---jsp +---lib
以下是本项目所需的build.xml文件。让我们逐段来看。
<?xml version="1.0"?> <project name="fax" basedir="." default="build"> <property name="src.dir" value="src"/> <property name="web.dir" value="war"/> <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="build" description="Compile source tree java files"> <mkdir dir="${build.dir}"/> <javac destdir="${build.dir}" source="1.5" target="1.5"> <src path="${src.dir}"/> <classpath refid="master-classpath"/> </javac> </target> <target name="clean" description="Clean output directories"> <delete> <fileset dir="${build.dir}"> <include name="**/*.class"/> </fileset> </delete> </target> </project>
首先,让我们声明一些用于源代码、web和构建文件夹的属性。
<property name="src.dir" value="src"/> <property name="web.dir" value="war"/> <property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
在上例中:
src.dir 指的是项目的源代码文件夹,其中包含Java源文件。
web.dir 指的是项目的web源代码文件夹,其中包含JSP、web.xml、css、javascript和其他web相关文件。
build.dir 指的是项目编译的输出文件夹。
属性可以引用其他属性。如上例所示,build.dir属性引用了web.dir属性。
在本例中,src.dir指的是项目的源代码文件夹。
我们项目默认的目标是compile目标。但首先,让我们看看clean目标。
clean目标顾名思义,删除构建文件夹中的文件。
<target name="clean" description="Clean output directories"> <delete> <fileset dir="${build.dir}"> <include name="**/*.class"/> </fileset> </delete> </target>
master-classpath包含类路径信息。在本例中,它包括构建文件夹中的类和lib文件夹中的jar文件。
<path id="master-classpath"> <fileset dir="${web.dir}/WEB-INF/lib"> <include name="*.jar"/> </fileset> <pathelement path="${build.dir}"/> </path>
最后,构建目标用于构建文件。
首先,我们创建构建目录(如果不存在),然后执行javac命令(指定jdk1.5作为我们的目标编译)。我们将源代码文件夹和类路径提供给javac任务,并要求它将类文件放入构建文件夹中。
<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>
在这个文件中执行Ant会编译Java源文件并将类文件放置在构建文件夹中。
运行Ant文件后的结果如下:
C:\>ant Buildfile: C:\build.xml BUILD SUCCESSFUL Total time: 6.3 seconds
文件被编译并放置在build.dir文件夹中。