如何在Ant脚本中设置包含不同目录的war文件

时间:2011-04-05 15:59:51

标签: eclipse ant war ear

这对我来说很新鲜。我已经运行了我的Ant build.xml并填充了我想要的所有东西,但我的内容(js,css,jsp等)只是卡在最顶层目录的WAR中。我希望将这些内容放入我需要在战争中制作的WEB-INF文件夹中。这是我到目前为止的参考资料。如果我能看到一个如何做到这一点的例子,我想我会很好。试图遵循这个thread,是设置我错过了吗?

    <war warfile="${build}/${project.name}.war" webxml="${appconf}/web.xml">
        <classes dir="${appconf}/classes" />
        <fileset dir="${appcontent}" includes="jsp/**,js/**,images/**,css/**,tg/**" excludes="**/*.~js,**/*.~jav,**/*.java,cvs,annotation">
            <patternset id="jsp_images_package">
                <include name="**/*.jsp,**/*.js,**/*.gif,**/*.html,**/*.css"/>
                <exclude name="**/*.~js,**/*.~jav"/>
            </patternset>
        </fileset>
        <fileset dir="${appcontent}" includes="WEB-INF/lib/*.jar,WEB-INF/*.jar"/>
        <fileset dir="${appcontent}" includes="WEB-INF/lib/*.css"/>
        <fileset dir="${appcontent}" includes="docs/*.doc"/>
    </war>

1 个答案:

答案 0 :(得分:0)

在这种情况下,您要使用的是<zipfileset>。它应该看起来像这样(你的结构很奇怪,所以我无法确切地告诉你想要文件的位置)。

<war warfile="${build}/${project.name}.war" webxml="${appconf}/web.xml">
    <classes dir="${appconf}/classes" />
    <zipfileset dir="${appcontent}/jsp" includes="**/*.jsp" prefix="WEB-INF"/>
    <zipfileset dir="${appcontent}/js" includes="**/*.js" prefix="WEB-INF"/>
    <zipfileset dir="${appcontent}/css" includes="**/*.css" prefix="WEB-INF"/>
    <fileset dir="${appcontent}">
        <include name="docs/*.doc"/>
        <include name="images/**"/>
        <include name="WEB-INF/*.jar"/>
        <include name="WEB-INF/lib/*.jar"/>
        <include name="WEB-INF/lib/*.css"/>
    </fileset>
</war>