- 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 - 创建WAR文件
使用 Ant 创建 Web 归档 (WAR) 文件非常简单,并且与创建 JAR 文件的任务非常相似。毕竟,WAR 文件就像 JAR 文件一样,只是另一个 ZIP 文件。
WAR 任务是 JAR 任务的扩展,但它有一些很好的补充,可以用来操作 WEB-INF/classes 文件夹中的内容,以及生成 web.xml 文件。WAR 任务可用于指定 WAR 文件的特定布局。
由于 WAR 任务是 JAR 任务的扩展,因此 JAR 任务的所有属性都适用于 WAR 任务。
序号 | 属性及描述 |
---|---|
1 | webxml web.xml 文件的路径。 |
2 | lib 一个分组,用于指定放入 WEB-INF\lib 文件夹中的内容。 |
3 | classes 一个分组,用于指定放入 WEB-INF\classes 文件夹中的内容。 |
4 | metainf 指定生成 MANIFEST.MF 文件的指令。 |
继续我们的Hello World传真应用程序项目,让我们添加一个新的目标来生成 jar 文件。但在那之前,让我们考虑一下 war 任务。
请考虑以下示例:
<war destfile="fax.war" webxml="${web.dir}/web.xml"> <fileset dir="${web.dir}/WebContent"> <include name="**/*.*"/> </fileset> <lib dir="thirdpartyjars"> <exclude name="portlet.jar"/> </lib> <classes dir="${build.dir}/web"/> </war>
根据前面的示例,web.dir 变量指的是源 Web 文件夹,即包含 JSP、css、javascript 文件等的文件夹。
build.dir 变量指的是输出文件夹。这是 WAR 包的类可以找到的位置。通常,这些类将打包到 WAR 文件的 WEB-INF/classes 文件夹中。
在此示例中,我们正在创建一个名为fax.war的 war 文件。WEB.XML 文件是从 Web 源文件夹中获取的。Web 下“WebContent”文件夹中的所有文件都复制到 WAR 文件中。
WEB-INF/lib 文件夹填充了来自 thirdpartyjars 文件夹的 jar 文件。但是,我们排除了 portlet.jar,因为它已经存在于应用程序服务器的 lib 文件夹中。最后,我们从 build 目录的 web 文件夹复制所有类,并将它们放入 WEB-INF/classes 文件夹中。
将 war 任务包装在 Ant 目标(通常为 package)中并运行它。这将在指定位置创建 WAR 文件。
完全有可能嵌套 classes、lib、metainf 和 webinf 目录,以便它们位于项目结构中的任何分散文件夹中。但是,最佳实践建议您的 Web 项目应具有与 WAR 文件结构类似的 Web 内容结构。传真应用程序项目使用此基本原理概述了其结构。
要执行 war 任务,请将其包装在一个目标中,最常见的是 build 或 package 目标,然后运行它们。
<target name="build-war"> <war destfile="fax.war" webxml="${web.dir}/web.xml"> <fileset dir="${web.dir}/WebContent"> <include name="**/*.*"/> </fileset> <lib dir="thirdpartyjars"> <exclude name="portlet.jar"/> </lib> <classes dir="${build.dir}/web"/> </war> </target>
在此文件上运行 Ant 将为我们创建fax.war文件。
以下结果是运行 Ant 文件的结果:
C:\>ant build-war Buildfile: C:\build.xml BUILD SUCCESSFUL Total time: 12.3 seconds
fax.war 文件现在放置在输出文件夹中。war 文件的内容将如下所示:
fax.war: +---jsp This folder contains the jsp files +---css This folder contains the stylesheet files +---js This folder contains the javascript files +---images This folder contains the image files +---META-INF This folder contains the Manifest.Mf +---WEB-INF +---classes This folder contains the compiled classes +---lib Third party libraries and the utility jar files WEB.xml Configuration file that defines the WAR package