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

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

Мое муравейное задание выглядит так:

<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>

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

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

Спасибо.

Ответы [ 4 ]

15 голосов
/ 02 февраля 2011

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

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

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

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

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

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

6 голосов
/ 02 февраля 2011

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

<zipfileset dir="${home.dir}/JSPs" includes="**/*.jsp" prefix="WEB-INF/JSPs"/>
1 голос
/ 02 февраля 2011

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

<fileset dir="${home.dir}/WEB-INF/mydirectory/*">
            <include name="**/*"/>
</fileset>          
0 голосов
/ 02 февраля 2011

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

...