воскресенье, 28 февраля 2016 г.

Автоматизация сборки и деплоя ADF приложений при помощи Hudson и Ant (Build and Deployment ADF applications using Ant and Hudson)

Когда разработка ведётся не дома  на коленках, то сборку приложений обычно автоматизируют. Для этого существует достаточно большое количество средств (Hudson,Jenkins, TeamCity и т.д.). В этой статье я хочу рассказать об автоматизации сборки ADF приложений при помощи Hudson и Ant.

Hudson — инструмент непрерывной интеграции(Continuous Integration), написанный на Java. Поддерживает инструментарий для работы с разными системами контроля версий, включая CVS, Subversion, Mercurial, Git и Clearcase, может собирать проекты Apache Ant и Apache Maven, а также исполнять shell-скрипты и команды Windows.

Непрерывная интеграция -  это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта

Итак, сначала нужно установить Hudson. Для этого нужно зайти на официальный сайт  http://hudson-ci.org и скачать там последнюю версию war файла. Скачав файл, нужно запустить команду :

java -jar hudson-3.3.3.war --httpPort=8989 , где hudson-3.3.3.war - название скаченного файла, а httpPort=8989 - порт на котором будет доступен сервер.





При первом запуске сервера, нужно указать какие plugin-ы  нам необходимы.
Кроме основных, я выбрал  Hudson Git plugin, так как буду собирать приложение с github
(https://github.com/JealousyM/adf-jms)



После выбора plugin-ов нужно нажать на install, а потом на Finish



Hudson готов для работы. 



Потом нужно настроить Hudson для работы с Ant. Для этого нужно нажать на "Настроить Hudson"->"Конфигурирование системы", там  найти пункт "Ant" и указать там адрес к установленному экземпляру


Далее нужно создать задачу для сборки приложения. Для этого нужно  в верхнем левом углу нажать на Новая задача( New Job). А в появившемся окне ввести имя сборки и выбрать пункт "Создать задачу со свободной конфигурацией "



Далее появится самое главное окно(Окно настройки задачи). В нем можно указывать такие вещи как :

  • Название и описание проекта
  • Параметры сборки
  • Путь к репозиторию
  • Расписание запуска сборки
  • Добавление различных шагов сборки(вызов Ant, вызов Maven, выполнение команд Windows, выполнение команд shell)
  • Запуск послесборочных операций 


Для работы нашего проекта важно указать следующие пункты:


  • Прописать адрес к git репозиторию




  • Выбрать пункт "Опрашивать SCM об изменениях". И прописать пять звездочек (это означает, что опрос репозитория  об изменениях будет проходить  каждую минуту. Описание составления выражений для триггера  можно найти здесь : http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger
  • Добавить шаг для сборки "Вызвать Ant".  В появившихся полях выбрать версию ant которую нужно использовать(созданную ранее) и необходимые target-ы из build.xml который должен находиться в репозитории. Если build.xml отсутствует  в репозитории, необходимо нажать на advanced и указать путь  к нему.



Для сборки и деплоя ADF  приложений в Ant обычно используют  ora:ojdeploy и wldeploy. 




Их недостатком, является необходимость установленного jdevelopera, на машине где происходит сборка .

После того,  сборка настроена ее нужно сохранить.
В окне проекта потом можно:
  • собирать (вне расписания),удалять и перенастраивать проект
  • смотреть историю сборок
  • смотреть логи сборки
  • смотреть изменения в сборках







В ADF Essentials есть более детальное описание созданий build файлов и их автоматизации : http://www.oracle.com/technetwork/articles/adf/adf-essentials-098792.html