本文是Ant: The Definitive Guide nd Edition的摘录的两部分当中的第一部分作者Steve Holzner介绍了web application的打包并将于下周对第二部分做出修改它将会介绍WEB 应用程序的部署包括get serverdeploy 和 scp
对于Ant开发者来说开发Web就好像面包与黄油一样在你的配置当中包含一系列的任务第四章中我们将会介绍对应用包括Web应用的打包和部署的方法包括移动复制ftptelnetsshesec和mail等任务Ant提供给我们的工具比我们提高的更多这一章中我们将会介绍针对Web应用打包的方法包括deployreload和undeploy等任务第九章中将会介绍更多关于EJB的Ant任务
建立WAR文件
War任务是jar任务的一个扩展它将Web应用程序打进war文件当中通过特殊的方法文件将会被放置到服务器的WEBINF/lib WEBINF/classes 和 WEBINF目录当中举例来说当用户在编译工程之后产生以下的目录布局
例当中使用的build文件将会把你需要部署的应用创建在war文件当中将class文件放入WEBINF/classes目录重新命名loginxmlwebxml文件并将其放入WEBINF目录当中以及其它任务
例 建立war文件(ch/war/build/xml)
<?xml version= encoding=UTF ?>
<project default=main basedir=>
<property name=bin value=output />
<property name=src value=source />
<target name=main>
<war destfile=loginwar webxml=${src}/loginxml>
<fileset dir=${src}/html/>
<classes dir=${bin}/>
</war>
</target>
</project>
build 文件如下所示
%antBuildfile: buildxmlmain:
[war] Building war: /home/steven/ant/ch/war/loginwarBUILD SUCCESSFULTotal time: seconds
通过上面的命令我们建立了war文件除了将指定文件打包之外Ant同时在war文件当中提供了一个缺省的清单文件Manifestmf这个文件包含下面的内容
ManifestVersion: AntVersion: Apache Ant CreatedBy: _b (Sun Microsystems Inc)
在建立war文件之后用户可以将它部署到web服务器的部署目录下例如Tomcat服务器上的webapps目录
在表中列出了war任务的属性
小技巧war任务是一种指定war文件部署的快捷方式在使用zip或者jar任务时使用不同的前缀(prefix)和完整路径(fullpath)可以达到与war任务同样的效果
表 war 任务属性列表
educitycn/img_///jpg >war任务可以包含像fileset及zipfileset这些指定在war文件中应该包含有什么文件的元素war任务可以通过这些元素来指定各种文件应该放在什么地方
webinf元素里面的文件放在WEBINF路径下
classes元素里面的文件放在WEBINF/classes路径下
lib元素里面的文件放在WEBINF/lib路径下
metainf元素里面的文件放在METAINF路径下
建立CAB文件
cab任务的作用是建立Microsoftcab 档案文件cab任务的使用方法类似于jar或是zip任务cab文件相当于NET系统的war文件用于部署NET应用程序到服务器这个任务在Windows环境下使用外部工具cabarc(Microsoft提供)工作cabarc必须包含在执行路径当中
鑒于Microsoft Visual Studio IDE已经提供了很多强有力集成工具和向导来建立cab文件我们不打算在这里花太多的时间大多数的Microsoft开发者也不使用Ant来解决他们的构建问题提供一个使用Ant cab任务的建立例子
<cab cabfile=${deploy}/appcab basedir=${output} />
小技巧你可以免费的得到Microsoft C#的命令行编辑器csc 如果你的Windows并没有包含这个工具你可以安装NET Frameworks Software Development Kit (SDK)(可以在上得到)csc的编译器被包含在这个SDK当中
表 The cab 任务属性列表
educitycn/img_///jpg >用户可以使用嵌套的fileset元素来指定想要包含在文档当中的文件相对于其他Ant任务来说这个任务形成一个隐含的FileSet同时支持fileset元素(dir成为basedir)的所有属性包括嵌套的元素includeexclude和patternset元素