ant的war任务

介绍

ant的war任务是jar任务的扩展,对于文件特殊处理,最后放在war文件的WEB-INF/lib、或者 WEB-INF/classes 、或者 WEB-INF目录下面。
war任务是规定WAR文件特殊布局的一种快捷方式。其实相同的目标通过ant的zip或者jar任务也照样能实现。

war任务部分属性说明

  • destfile和warfile:指明要创建的WAR文件。这两个属性只能且必须存在1个。warfile这个属性已经废弃,不建议使用,而建议使用destfile属性。
    例如:
    在这里插入图片描述
    在这里插入图片描述
  • webxml:servlet要使用的配置描述符(WEB-INF/web.xml)。例如:
    在这里插入图片描述
  • needxmlfile:指明是否需要web.xml。当生成servlet 2.5版本及以后的WAR文件并且没有web.xml文件的时候,这个属性的值要设置为false。(备注:servlet 2.5版本以前,在WAR文件中,WEB-INF/web.xml文件是必须的,而在servlet 2.5版本及以后,是可选的)
  • compress:是否压缩,默认值是true。

作为内嵌元素声明的参数

  • lib:内嵌的lib元素声明了一个文件集( FileSet)。在这个文件集中的所有文件最后都放在war文件的WEB-INF/lib目录下。例如:
    在这里插入图片描述
  • classes:内嵌的classes元素声明了一个文件集。这个文件集中的所有文件最后都放在war文件的WEB-INF/classes目录下。例如:
    在这里插入图片描述
  • webinf:内嵌的webinf元素声明了一个文件集。这个文件集中的所有文件最后都放在war文件的WEB-INF目录下。如果文件集中包含了一个 web.xml文件,那么这个文件会被忽略,并给出告警。 webinf元素可以出现多次。
    例如:
    在这里插入图片描述
    再例如:
<war warfile="${build.war.home}/${ant.project.name}.war" webxml="${basedir}/src/main/resources/etc/web.xml">
    <webinf dir="${basedir}/src/main/resources/etc" includes="sun-jaxws.xml"/>
	<webinf dir="${basedir}/src/main/resources" includes="log4j2.xml,mybatis-config.xml"/>
    <classes dir="${build.classes.home}"/>
    <lib dir="${lib.home}"></lib>
</war>
  • metainf:内嵌的metainf元素声明了一个文件集。这个文件集中的所有文件最后都放在war文件的META-INF目录下。如果文件集中包含了一个MANIFEST.MF文件,那么这个文件会被忽略,并给出告警。
  • 其它的资源集合,例如fileset、zipfileset等。例如下面使用了zipfileset:
    在这里插入图片描述
    上面zipfileset元素及其属性的含义:src/graphics/images/gifs目录下的内容,最后都放在war包内images目录下面。

举例

该例子来自ant官网手册https://ant.apache.org/manual/index.html

假设项目基目录下面的结构布局如下:

thirdparty/libs/jdbc1.jar
thirdparty/libs/jdbc2.jar
build/main/com/myco/myapp/Servlet.class
src/metadata/myapp.xml
src/html/myapp/index.html
src/jsp/myapp/front.jsp
src/graphics/images/gifs/small/logo.gif
src/graphics/images/gifs/large/logo.gif

用下面的war任务来生成myapp.war文件:

<war destfile="myapp.war" webxml="src/metadata/myapp.xml">
  <fileset dir="src/html/myapp"/>
  <fileset dir="src/jsp/myapp"/>
  <lib dir="thirdparty/libs">
    <exclude name="jdbc1.jar"/>
  </lib>
  <classes dir="build/main"/>
  <zipfileset dir="src/graphics/images/gifs"
              prefix="images"/>
</war>

最后生成的myapp.war文件包含:

WEB-INF/web.xml
WEB-INF/lib/jdbc2.jar
WEB-INF/classes/com/myco/myapp/Servlet.class
META-INF/MANIFEST.MF
index.html
front.jsp
images/small/logo.gif
images/large/logo.gif

其中,利用了ant默认的manifest文件, WEB-INF/web.xml文件的内容和src/metadata/myapp.xml文件的内容完全相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值