Учебники

Ant — Создание WAR-файлов

Создание WAR-файлов с помощью Ant чрезвычайно просто и очень похоже на задачу создания JAR-файлов. В конце концов, WAR-файл, как и JAR-файл, является просто еще одним ZIP-файлом.

Задача WAR является расширением задачи JAR, но в ней есть несколько приятных дополнений для управления содержимым папки WEB-INF / classes и создания файла web.xml. Задача WAR полезна для указания конкретного макета файла WAR.

Поскольку задача WAR является расширением задачи JAR, все атрибуты задачи JAR применяются к задаче WAR.

Sr.No. Атрибуты и описание
1

webxml

Путь к файлу web.xml

2

Lib

Группировка для указания того, что входит в папку WEB-INF \ lib.

3

классы

Группировка для указания того, что входит в папку WEB-INF \ classes.

4

metainf

Указывает инструкции для генерации файла MANIFEST.MF.

webxml

Путь к файлу web.xml

Lib

Группировка для указания того, что входит в папку WEB-INF \ lib.

классы

Группировка для указания того, что входит в папку WEB-INF \ classes.

metainf

Указывает инструкции для генерации файла MANIFEST.MF.

Продолжая наш проект приложения Hello World Fax, давайте добавим новую цель для создания файлов jar. Но перед этим рассмотрим задачу войны. Рассмотрим следующий пример —

<war destfile = "fax.war" webxml = "${web.dir}/web.xml">
   <fileset dir = "${web.dir}/WebContent">
      <include name = "**/*.*"/>
   </fileset>
   
   <lib dir = "thirdpartyjars">
      <exclude name = "portlet.jar"/>
   </lib>
   
   <classes dir = "${build.dir}/web"/>
</war>

Как и в предыдущих примерах, переменная web.dir ссылается на исходную веб-папку, т. Е. На папку, содержащую файлы JSP, css, javascript и т. Д.

Переменная build.dir относится к выходной папке. Здесь можно найти классы для пакета WAR. Как правило, классы будут упакованы в папку WEB-INF / classes файла WAR.

В этом примере мы создаем файл войны с именем fax.war. Файл WEB.XML получен из папки веб-источника. Все файлы из папки «WebContent» в Интернете копируются в файл WAR.

Папка WEB-INF / lib заполняется файлами jar из папки thirdpartyjars. Однако мы исключаем portlet.jar, так как он уже присутствует в папке lib сервера приложений. Наконец, мы копируем все классы из веб-папки каталога сборки и помещаем в папку WEB-INF / classes.

Оберните военное задание внутри цели Ant (обычно в пакете) и запустите ее. Это создаст файл WAR в указанном месте.

Вполне возможно вложить директоры классов, lib, metainf и webinf так, чтобы они находились в отдельных папках в любом месте структуры проекта. Но лучшие практики предполагают, что ваш веб-проект должен иметь структуру веб-контента, аналогичную структуре файла WAR. Проект приложения факса имеет структуру, основанную на этом базовом принципе.

Чтобы выполнить военное задание, оберните его внутри цели, чаще всего цели сборки или пакета, и запустите их.

<target name = "build-war">
   <war destfile = "fax.war" webxml = "${web.dir}/web.xml">
      <fileset dir = "${web.dir}/WebContent">
         <include name = "**/*.*"/>
      </fileset>
      
      <lib dir = "thirdpartyjars">
         <exclude name = "portlet.jar"/>
      </lib>
      
      <classes dir = "${build.dir}/web"/>
   </war>
</target>

Запуск Ant для этого файла создаст для нас файл fax.war .

Следующий результат является результатом запуска файла Ant —

C:\>ant build-war
Buildfile: C:\build.xml

BUILD SUCCESSFUL
Total time: 12.3 seconds

Файл fax.war теперь помещен в выходную папку. Содержание файла войны будет —