我正在使用 ANT 为我的 Java 网络应用构建 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。
最佳答案
我找出了导致问题的原因。 <fileset>
<war>
内的标签任务以某种方式导致文件被两次添加到存档中。如果 ANT 会抛出一个错误但它没有抛出,那就太好了。因为我想添加整个 tmp.dir
到我的文件,我应该习惯以下:
<target name="dist" depends="package">
<war destfile="${bin.dir}/webapp.war" basedir="${tmp.dir}">
<!-- No extra <fileset> -->
</war>
</target>
如果其他人遇到这个问题,我会把这个问题留在这里而不是删除它。
关于java - WAR 中的文件出现双重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3393301/