java - WAR 中的文件出现双重

标签 java eclipse ant war

我正在使用 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/

相关文章:

android - Eclipse 在创建 android junit 测试配置时抛出 java.lang.NullPointerException

ant - 在不失败的情况下停止ant脚本

java - 选择用于实现分布式消息传递算法的编程语言

java - "java could not find the main class"和 "could not read maven project"

java - 使用 Java 代码评估 JavaScript

android - 是否可以在 local.properties 中加载 ANDROID_HOME 值?

Ant telnet卡在一个简单的任务上

java - 使用 jaxb-ri-2.2.7 的 ant schemagen 任务中的 ClassCastException

Java加密/解密到Ruby

java - 将文件作为命令行参数传递并读取其行