Про то, как написать Ant скрипт для развертывания приложения на сервере приложений Orion

Рассказ о пользе автоматизации групповой разработки приложений, с описанием алгоритма сценария и реализацией с помощью пакета для автоматизации сборки и развертывания приложений из исходного кода Apache Ant. Статья включает в себя фрагменты исходного кода. Тестовое приложение и все необходимые настройки и библиотеки доступны для скачивания.

Постановка задачи.

Представим групповую работу над сложным Java приложением, требующую установки и развертывания всего проекта как на машинах разработчиков, так и тестеров и дизайнеров. Все файлы хранятся в CVS, разработка идет в Eclipse. Новому работнику ставится задача установить у себя локальный сервер приложений, веб сервер, закачать себе из CVS текущую рабочую версию проекта, скомпилировать, собрать и развернуть веб часть на веб сервере, ejb — на сервере приложений.

Новому человеку, да и не только новому, бывает трудно понять и без ошибок собрать в ручную замысловатый и разветвленный проект. К тому же, если он поставить какое-нибудь приложение не в ту папку, шансы что все заработает с первого раза равны нулю.

Удобным решением этой проблемы может стать пакет для автоматизации сборки и развертывания приложений из исходного кода Apache Ant. Стоит потратить полдня на изучение этой полезной утилиты и огромная головная боль будет снята.

Описание приложения.

В этой статье мы приведем текст Ant build файла для тестового приложения. Это будет все тот же простой пример сервлета и MDB.

Сначала рассмотрим раскладку файлов в Eclipse.

  • My Application
    • conf
      • META-INF
        • application.xml
      • myapplication-ejb.jar
        • META-INF
          • ejb-jar.xml
          • orion-ejb-jar.xml
      • myapplication-web.jar
        • META-INF
          • web.xml
    • lib
      • commons-logging.jar
      • log4j-1.2.13.jar
      • orion.jar
      • ejb.jar
    • my.ejb.bean
      • ApplicationWorker.java
    • my.web
      • ApplicationServlet.java
    • properties
      • my.log4j.properties
      • myapplication.properties
    • JRE System Library [jre5]
      • deploy-jar.xml
      • my.properties

В папке conf мы создаем все мета файлы нашего проекта. Она содержит подпапки с файлами описывающими веб часть и ejb часть. Это папки myapplication-web.jar и myapplication-ejb.jar. В зависимости от сервера приложений, содержание этих файлов и их количество, может менятся. В тестовом проекте мы используем сервер приложений Orion, поэтому все настроено именно под него.

Папка lib содержит необходимые библиотеки. orion.jar и ejb.jar используются только на стороне Eclipse и не принимают участие в развертывании так как эти библиотеки уже есть в самом сервере и копировать их нет необходимости.

Следующие файлы о которых следует сказать это ApplicationWorker.java и ApplicationServlet.java. Они лежат в папках my.ejb.bean и my.web соответственно. Это Java файлы с исходным текстом программ. Они будут автоматически компиллрованы Антом и мы получим готовые классы.

В папке properties лежат настроечные файлы приложения. Они будут скопированы на сервер, но перед этим, если необходимо они будут пропущены через фильтр и все определенные переменные заменены из файла настройки развертывания - my.properties. Мы покажем как это происходит на примере my.log4j.properties.

deploy-jar.xml это основной файл сценария пакета автоматизации сборки Apache Ant

В файле my.properties хранятся настройки сценария развертывания приложения и фильтров.

Теперь посмотрим что нам надо получить на сервере.

  • Orion
    • config
      • my.log4j.properties
      • myapplication.properties
    • lib
      • commons-logging.jar
      • log4j-1.2.13.jar
    • applications
      • my_application.ear
        • META-INF
          • MANIFEST.MF
        • my_application-web.war
          • META-INF
            • MANIFEST.MF
          • WEB-INF
            • web.xml
            • classes
              • my
                • web
                  • ApplicationServlet.class
        • my_application-ejb.jar
          • META-INF
            • MANIFEST.MF
            • ejb-jar.xml
            • orion-ejb-jar.xml
          • my
            • ejb
              • bean
                • ApplicationWorker.class

Нам надо скопировать две библиотеки в папку orion/lib, два настроечных файла приложения в папку orion/config и собственно главный архив приложения my_application.ear в папку orion/applications. Содержание архива хорошо видно на предыдущей схеме, что значительно упрощает создание сценария работы пакета Apache Ant.

Страница:

  • 1

  • 2