课程表

Apache Ant课程

工具箱
速查手册

Ant 封装应用

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

我们通过 Hello World Fax Web 应用,已经琐碎地学习了 Ant 的不同方面的知识了。

现在是时候把我们所学的知识都运用起来创建一个全面和完整的 build.xml 文件了。考虑下面给出的 build.propertiesbuild.xml 文件:

build.properties

  1. eploy.path = c:\tomcat6\webapps

build.xml

  1. <?xml version = "1.0"?>
  2. <project name = "fax" basedir = "." default = "usage">
  3. <property file = "build.properties"/>
  4. <property name = "src.dir" value = "src"/>
  5. <property name = "web.dir" value = "war"/>
  6. <property name = "javadoc.dir" value = "doc"/>
  7. <property name = "build.dir" value = "${web.dir}/WEB-INF/classes"/>
  8. <property name = "name" value = "fax"/>
  9. <path id = "master-classpath">
  10. <fileset dir = "${web.dir}/WEB-INF/lib">
  11. <include name = "*.jar"/>
  12. </fileset>
  13. <pathelement path = "${build.dir}"/>
  14. </path>
  15. <target name = "javadoc">
  16. <javadoc packagenames = "faxapp.*" sourcepath = "${src.dir}"
  17. destdir = "doc" version = "true" windowtitle = "Fax Application">
  18. <doctitle><![CDATA[<h1> = Fax Application = </h1>]]>
  19. </doctitle>
  20. <bottom><![CDATA[Copyright ? 2011. All Rights Reserved.]]>
  21. </bottom>
  22. <group title = "util packages" packages = "faxapp.util.*"/>
  23. <group title = "web packages" packages = "faxapp.web.*"/>
  24. <group title = "data packages" packages = "faxapp.entity.*:faxapp.dao.*"/>
  25. </javadoc>
  26. </target>
  27. <target name = "usage">
  28. <echo message = ""/>
  29. <echo message = "${name} build file"/>
  30. <echo message = "-----------------------------------"/>
  31. <echo message = ""/>
  32. <echo message = "Available targets are:"/>
  33. <echo message = ""/>
  34. <echo message = "deploy --> Deploy application as directory"/>
  35. <echo message = "deploywar --> Deploy application as a WAR file"/>
  36. <echo message = ""/>
  37. </target>
  38. <target name = "build" description = "Compile main source tree java files">
  39. <mkdir dir = "${build.dir}"/>
  40. <javac destdir = "${build.dir}" source = "1.5" target = "1.5" debug = "true"
  41. deprecation = "false" optimize = "false" failonerror = "true">
  42. <src path = "${src.dir}"/>
  43. <classpath refid = "master-classpath"/>
  44. </javac>
  45. </target>
  46. <target name = "deploy" depends = "build" description = "Deploy application">
  47. <copy todir = "${deploy.path}/${name}" preservelastmodified = "true">
  48. <fileset dir = "${web.dir}">
  49. <include name = "**/*.*"/>
  50. </fileset>
  51. </copy>
  52. </target>
  53. <target name = "deploywar" depends = "build" description = "Deploy application as a WAR file">
  54. <war destfile = "${name}.war" webxml = "${web.dir}/WEB-INF/web.xml">
  55. <fileset dir = "${web.dir}">
  56. <include name = "**/*.*"/>
  57. </fileset>
  58. </war>
  59. <copy todir = "${deploy.path}" preservelastmodified = "true">
  60. <fileset dir = ".">
  61. <include name = "*.war"/>
  62. </fileset>
  63. </copy>
  64. </target>
  65. <target name = "clean" description = "Clean output directories">
  66. <delete>
  67. <fileset dir = "${build.dir}">
  68. <include name = "**/*.class"/>
  69. </fileset>
  70. </delete>
  71. </target>
  72. </project>

在上面给出的例子中:

  • 我们首先在 build.properties 文件中声明了存放 Tomcat 的 webapp 文件夹的路径,并用变量 deploy.path 来保存。
  • 我们声明一个源文件夹来存放 java 文件,并用变量 src.dir 来保存。
  • 接下来,我们声明另一个源文夹来存放 web 文件,并用变量 web.dir 来保存。变量 javadoc.dir 用来存储 java 文档,变量 build.dir 是用来存储配置输出文件的路径。
  • 然后,我们给这个 web 应用命名,也就是 fax 传真。
  • 我们还定义了包含 JAR 文件的基本类路径,在上面给出的项目中也就是: WEB-INF/lib 文件夹。
  • 我们还将 build.dir 中的类文件存放在基本类路径下。
  • 这个 Javadoc 目标产生项目所需的文档,以及说明目标使用的 javadoc 文档。

上述的例子向我们展示了两个部署目标: deploydeploywar

这个 deploy 目标将文件从 web 目录复制到部署目录,并保存最后修改日期时间戳。这样很有用,特别是当我们将项目部署到服务器上,并且该服务器支持热部署。(释义:所谓热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。)

这个 clean 目标清楚所有之前的构建文件。

这个 deploywar 目标构建 war 文件,然后将 war 文件复制到应用程序服务器的部署目录。

转载本站内容时,请务必注明来自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号