Использование задачи ant war для включения файлов в каталог WEB-INF

Я использую ant для создания своего веб-приложения. Я уверен, что это просто, но я не могу понять, как сказать ant создать определенную папку в каталоге WEB-INF и скопировать файлы в нее.

моя задача ant war выглядит так:

<target name="warItUp" depends="compile">
    <war destfile="MyApp.war" webxml="${home.dir}WEB-INFweb.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>

все элементы набора файлов работают, т. е. они включают pdf, jsp и файлы изображений в корневом каталоге файла war.

но если я хочу создать подкаталог в каталоге WEB-INF файла war и включить файлы в как мне это уточнить? например, скажем, я хотел включить WEB-INF/TagLibraryDescriptors/MyTagLib.tld в файле war или если я хочу создать папку WEB-INF/JSP в моем файле war и скопировать в нее все файлы JSP.

спасибо.

4 ответов


OP здесь, Спасибо за все ответы. Я нашел другое решение - есть элемент webinf, который можно включить в задачу войны.

это скопирует файлы из исходной папки JSPs в папку WEB-INF в файле war:

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

в то время как это будет копировать файлы из исходной папки JSPs в папку WEB-INF/JSPs (мой предпочтительный выбор):

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

Я думаю, я буду придерживаться этого решения, но спасибо за ответы.


в качестве альтернативы вложенные webinf элемент, вы также можете использовать zipfileset элемент, который позволяет указать исходную папку и префикс пути в архиве:

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

попробуйте создать этот каталог в своем проекте, а затем просто добавьте набор файлов следующим образом:

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

Почему бы не создать структуру dir вам нужно mkdir путь?