ANT打war包时出现重复文件的解决方法

最近用ant给java web程序打war包时发现打出来的war包里面WEB-INF里的文件均有两个,后来发现加上一句fileset,include,exclude语句之后就没有重复文件了

打包代码如下

<target name="antwar" depends="build" description="not wrap the java file to .war">
  <delete dir="${build.src}" />
  <war warfile="${war.dest}/anttest.war" webxml="${buildwar.dest}/WEB-INF/web.xml">
   <lib dir="${buildwar.dest}/WEB-INF/lib" />
   <classes dir="${build.dest}" />
   <fileset dir="${buildwar.dest}">
    <include name="***.*" />
   </fileset>
  </war>
 </target>

如果要忽略一些文件就需要使用fileset和excludes
比如:复制一个目录中所有.java为结尾的文件,除去文件名含有Test字符的文件
<target name="copyfiles">       
        <copy todir="${dest.dir}" overwrite="true">
           <fileset dir="${src.dir}">
               <include name="***Test*"/>
           </fileset>
        </copy>
</target>

复制一个目录中所有文件,除去含有Test字符的目录
<target name="copyfiles">       
        <copy todir="${dest.dir}" overwrite="true">
           <fileset dir="${src.dir}">
             <exclude name="****"/>
           </fileset>
        </copy>
</target>
需要加/**

下面附上build.xml的所有代码,用于打包java web程序,并将war包拷贝(发布)到tomcat的webapp路径下面

<?xml version="1.0" encoding="GB2312"?>
<project basedir="." default="publish" name="anttest">
 <target name="init" description="set initiation directory">
  <property name="src" value="${basedir}/src" />
  <property name="config" value="${basedir}/config" />
  <property name="lib" value="${basedir}/WebContent/WEB-INF/lib" />
  <property name="webapp" value="${basedir}/WebContent" />
  <property name="packages" value="ant.*" />

  <property name="build.src" value="${basedir}/AntBuild/anttest/src" />
  <property name="build.dest" value="${basedir}/AntBuild/anttest/WEB-INF/classes" />

  <property name="buildwar.dest" value="${basedir}/AntBuild/anttest" />
  <property name="build.javadocs" value="${basedir}/Antbuild/doc" />
  <property name="jar.dest" value="${basedir}/AntBuild/jar" />
  <property name="war.dest" value="${basedir}/AntBuild/war" />

  <property name="tomcat.home" value="D:\JavaSoft\apache-tomcat-6.0.32" />
  <property name="j2eelib.dir" value="D:\JavaSoft\eclipse-gee-ganymede-win32\eclipse\plugins" />

  <path id="classpath">
   <fileset dir="${j2eelib.dir}">
    <include name="***.jar" />
   </fileset>
  </path>
 </target>

 <target name="prepare" depends="init" description="create directories for war, and copy source file to war direcoty">
  <mkdir dir="${build.src}" />
  <mkdir dir="${build.dest}" />
  <mkdir dir="${buildwar.dest}" />
  <mkdir dir="${jar.dest}" />
  <mkdir dir="${war.dest}" />
  <copy todir="${build.src}">
   <fileset dir="${src}" />
  </copy>
  <copy todir="${build.src}">
   <fileset dir="${config}" />
  </copy>
  <copy todir="${buildwar.dest}">
   <fileset dir="${webapp}" />
  </copy>
 </target>

 <target name="build" depends="prepare" description="compile the java file. copy configuration files about properties to compile result directory">
  <javac srcdir="${build.src}" destdir="${build.dest}">
   <classpath refid="classpath" />
  </javac>
  <copy todir="${build.dest}">
   <fileset dir="${build.src}">
    <include name="***.*" />
    <exclude name="WEB-INF*.*" />
   </fileset>
  </war>
 </target>

 <target name="publish" depends="antwar,clean" description="publish .war to tomcat directory">
  <copy todir="${tomcat.home}/webapps">
   <fileset dir="${war.dest}">
    <include name="***.classes" />
  </delete>
  <delete dir="${buildwar.dest}" />
 </target>
</project>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值