我正在使用ANT为我的Java Web应用程序构建WAR文件。但是,当我查看WAR文件时,我看到每个文件出现两次(不是文件夹,只是文件)。当我提取WAR文件时没有错误,文件结构看起来是正确的,没有双重文件。如果我然后将提取的文件压缩回ZIP文件,则归档文件几乎是ANT创建的原始WAR文件的一半大小。
我正在使用以下任务来创建我的WAR文件:
<target name="dist" depends="package">
<war destfile="${bin.dir}/webapp.war" basedir="${tmp.dir}">
<fileset dir="${tmp.dir}" />
</war>
</target>
当我检查tmp.dir
中的文件结构时,文件看起来似乎没问题。我在Ubuntu 9.10上从Eclipse(Helios)中运行ANT。
答案 0 :(得分:2)
我发现了导致问题的原因。 <fileset>
任务中的<war>
标记以某种方式导致文件被添加到存档两次。如果ANT会抛出一个错误,但事实并非如此,这将是一件好事。由于我想将整个tmp.dir
添加到我的存档中,因此我应该习惯于:
<target name="dist" depends="package">
<war destfile="${bin.dir}/webapp.war" basedir="${tmp.dir}">
<!-- No extra <fileset> -->
</war>
</target>
如果其他人遇到此问题,我会在此处留下此问题,而不是将其删除。