Java 使用ant war任务在WEB-INF目录中包含文件

Java 使用ant war任务在WEB-INF目录中包含文件,java,hibernate,jakarta-ee,ant,war,Java,Hibernate,Jakarta Ee,Ant,War,我正在使用ant构建我的web应用程序。我相信这很简单,但我不知道如何告诉ant在WEB-INF目录中创建一个特定的文件夹并将文件复制到其中 我的ant war任务如下所示: <target name="warItUp" depends="compile"> <war destfile="MyApp.war" webxml="${home.dir}\WEB-INF\web.xml"> <classes dir="${classes.dir}

我正在使用ant构建我的web应用程序。我相信这很简单,但我不知道如何告诉ant在WEB-INF目录中创建一个特定的文件夹并将文件复制到其中

我的ant war任务如下所示:

<target name="warItUp" depends="compile">
    <war destfile="MyApp.war" webxml="${home.dir}\WEB-INF\web.xml">

        <classes dir="${classes.dir}"/>
        <classes file="${src.dir}/hibernate.cfg.xml"/>
        <classes dir="${src.dir}" includes="**/*.hbm.xml"/>

        <!-- Include the PDF files -->
        <fileset dir="${home.dir}/PDFs">
            <include name="**/*.pdf"/>
        </fileset>

        <!-- Include the JSP files -->
        <fileset dir="${home.dir}/JSPs">
            <include name="**/*.jsp"/>
        </fileset>

        <!-- Include the images -->
        <fileset dir="${home.dir}/images">
            <include name="**/*"/>
        </fileset>          
    </war>

所有文件集元素都可以工作,即它们包括war文件根目录中的pdf、jsp和图像文件

但是如果我想在war文件的WEB-INF目录中创建一个子目录,并在其中包含文件,我该如何指定呢?e、 g.假设我想在war文件中包含WEB-INF/TagLibraryDescriptors/MyTagLib.tld,或者我想在war文件中创建一个WEB-INF/JSP文件夹,并将所有JSP文件复制到其中


谢谢。

尝试在项目中创建此目录,然后只需添加如下文件集:

<fileset dir="${home.dir}/WEB-INF/mydirectory/*">
            <include name="**/*"/>
</fileset>          


为什么不创建所需的dir结构?

请点击此处,感谢所有回复。我找到了另一个解决方案——war任务中可以包含一个webinf元素

这将把源JSP文件夹中的文件复制到war文件中的WEB-INF文件夹中:

<webinf dir="${home.dir}/JSPs" 
includes="**/*.jsp">
</webinf>

然而,这会将文件从源JSP文件夹复制到WEB-INF/JSPs文件夹(我的首选):



我想我会坚持使用这个解决方案,但感谢您的回复。

作为嵌套元素的替代,您也可以使用元素,它允许您在存档中指定源文件夹和路径前缀:

<zipfileset dir="${home.dir}/JSPs" includes="**/*.jsp" prefix="WEB-INF/JSPs"/>

我自己找到了解决方案,请参见下面的答案。对不起,浪费了大家的时间。
<zipfileset dir="${home.dir}/JSPs" includes="**/*.jsp" prefix="WEB-INF/JSPs"/>