0

我需要创建一个仅包含静态内容文件(gif、jpg、html、js 等)的 WAR 文件。我有一个包含所有文件的目录结构,需要通过 ANT (1.5.1) 构建任务创建 WAR 文件。现在我在 ANT 任务中有这个:

<war destfile="${output.file}" webxml="WEB-INF/web.xml" basedir="${basedir}">
    <fileset dir="${basedir}/sales" />       
</war>

我要包含的文件位于 C:/basedir/sales 及其子目录中。当我尝试运行此任务时,我得到“一个 zip 文件不能包含自身”。所以很明显,把那个文件集放在那里不是正确的方法。我不清楚我需要在任务和 web.xml 文件中添加什么以指定要包含在存档中的文件。

4

1 回答 1

2

我认为 basedir="${basedir}" 给你带来了问题。另外,我认为您编写它的方式将要求 web.xml 存在于 WEB-INF 目录中,相对于您运行 ant 的位置。

因此,尝试按如下方式创建 /WEB-INF/web.xml:

<?xml version="1.0" encoding="utf-8" ?>

<web-app>
</web-app>

然后尝试更新 /build.xml 如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="yourproject" basedir="." default="war" xmlns:ivy="antlib:org.apache.ivy.ant">
        <target name="war" description="--> build war file">
                <war destfile="./mywar.war" webxml="WEB-INF/web.xml">
                    <fileset dir="C:/basedir/sales" />
                </war>
        </target>
</project>

然后你应该能够从命令行运行“ant war”,它应该在你的当前目录中创建“mywar.war”。

于 2009-11-24T16:40:35.867 回答