课程表

Apache Ant课程

工具箱
速查手册

Ant 编译项目

当前位置:免费教程 » 软件/图像 » Apache Ant

现在我们已经学习了 Ant 的数据类型,是时候在实际过程中运用所学知识了。在这一章节中,我们将会构建一个项目。这一章节的目的是创建一个 Ant build 文件,该文件能够编译 Java 源文件和将这些类文件存储在 WEB-INF\classes 文件夹下。

考虑接下来构建项目的结构:

  • 数据脚本存储在 db 文件夹中。
  • java 源文件存储在 src 文件夹中。
  • images (图像),js (JavaScript 脚本),style (css 层叠样式表)存储在 war 文件夹中。
  • JSPs 文件存储在 jsp 文件夹中。
  • 第三方的 jar 文件存储在 lib 文件夹中。
  • java 类文件存储在 WEB-INF\classes 文件夹中。

学习完本教程的剩余部分后,就能知道这个项目是一个 Hello World 传真应用。

  1. C:\work\FaxWebApplication>tree
  2. Folder PATH listing
  3. Volume serial number is 00740061 EC1C:ADB1
  4. C:.
  5. +---db
  6. +---src
  7. . +---faxapp
  8. . +---dao
  9. . +---entity
  10. . +---util
  11. . +---web
  12. +---war
  13. +---images
  14. +---js
  15. +---META-INF
  16. +---styles
  17. +---WEB-INF
  18. +---classes
  19. +---jsp
  20. +---lib

下面给出上述项目的 build.xml 文件的内容。让我们来一条语句接一条语句地来分析它。

  1. <?xml version="1.0"?>
  2. <project name="fax" basedir="." default="build">
  3. <property name="src.dir" value="src"/>
  4. <property name="web.dir" value="war"/>
  5. <property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
  6. <property name="name" value="fax"/>
  7. <path id="master-classpath">
  8. <fileset dir="${web.dir}/WEB-INF/lib">
  9. <include name="*.jar"/>
  10. </fileset>
  11. <pathelement path="${build.dir}"/>
  12. </path>
  13. <target name="build" description="Compile source tree java files">
  14. <mkdir dir="${build.dir}"/>
  15. <javac destdir="${build.dir}" source="1.5" target="1.5">
  16. <src path="${src.dir}"/>
  17. <classpath refid="master-classpath"/>
  18. </javac>
  19. </target>
  20. <target name="clean" description="Clean output directories">
  21. <delete>
  22. <fileset dir="${build.dir}">
  23. <include name="**/*.class"/>
  24. </fileset>
  25. </delete>
  26. </target>
  27. </project>

首先,让我们来声明一些源文件,web 文件和构建文件的一些属性信息。

  1. <property name="src.dir" value="src"/>
  2. <property name="web.dir" value="war"/>
  3. <property name="build.dir" value="${web.dir}/WEB-INF/classes"/>

在上面的例子中:

  • src.dir 表示这个项目的源文件目录,也就是存储 java 文件的地方。
  • web.dir 表示这个项目的 web 文件目录,也就是存储 JSPs 文件,web.xml,css,javascript 以及其它与 web 相关的文件的地方。
  • build.dir 表示该项目的输出文件。

属性也可以引用其它属性。在上面的例子中,build.dir 属性引用了 web.dir 属性。

在上面的例子中,src.dir 就是项目源文件存放的地方。

我们项目的默认目标是编译目标。但是首先让我们来看一下 clean 目标。

clean 目标,就像它的名字所表明的意思一样,删除构建文件夹中的所有文件。

  1. <target name="clean" description="Clean output directories">
  2. <delete>
  3. <fileset dir="${build.dir}">
  4. <include name="**/*.class"/>
  5. </fileset>
  6. </delete>
  7. </target>

控制类路径 (master-classpath) 保存类路径的相关信息。在这种情况下,它包含了构建文件夹和 jar 文件夹中的所有的类文件。

  1. <path id="master-classpath">
  2. <fileset dir="${web.dir}/WEB-INF/lib">
  3. <include name="*.jar"/>
  4. </fileset>
  5. <pathelement path="${build.dir}"/>
  6. </path>

最后,构建目标构建这些文件。首先,我们创建一个构建目录,如果该目录不存在,我们就执行 javac 命令(具体以 jdk 1.5 作为我们目标的编译环境)。 我们对 javac 任务提供源文件夹和类路径,并且通过执行 javac 任务将类文件存放在构建文件夹中。

  1. <target name="build" description="Compile main source tree java files">
  2. <mkdir dir="${build.dir}"/>
  3. <javac destdir="${build.dir}" source="1.5" target="1.5" debug="true"
  4. deprecation="false" optimize="false" failonerror="true">
  5. <src path="${src.dir}"/>
  6. <classpath refid="master-classpath"/>
  7. </javac>
  8. </target>

在这个文件上执行 Ant,编译 java 源文件,并将编译后的类文件存放在构建文件夹的地方。

运行 Ant 文件后,能看到以下输出:

  1. C:\>ant
  2. Buildfile: C:\build.xml
  3. BUILD SUCCESSFUL
  4. Total time: 6.3 seconds

文件被编译后,将存储在 build.dir 文件夹中。

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号