我需要创建一个仅包含静态内容文件(gifs,jpgs,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文件中添加什么来指定存档中要包含的文件。
答案 0 :(得分: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”。