Использование задачи 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>