Автоматизация сборки проекта

Автоматизация процесса сборки программного продукта связана с разработкой различных скриптов для выполнения таких действий, как :

  • компиляция исходного кода в бинарный;
  • сборка бинарного кода;
  • выполнение тестов;
  • разворачивание программы на сервере (удаленном компьютере);
  • оформление сопроводительной документации или описание изменений.

Процесс разработки проекта группой программистов включает сборку очередной версии проекта, после которого необходимо выполнить тестирование этой версии. Чтобы собрать очередную версию, ответственный за сборку должен получить последние версии файлов, обновить номер версии (релиза), собрать проект и, если все пройдет успешно, выложить готовый проект для тестирования в определенное место. При этом необходимо использовать определенные библиотеки. Соответственно переход на новую версию программного продукта или одной из библиотек может вызвать множество проблем: сборка новой версии может оказаться неработоспособной и придется откатываться на старую версию и т.п.

Таким образом, автоматизация процесса сборки проекта становится неотъемлемой частью процесса разработки. С развитием интегрированных средств разработки (IDE Eclipse, NetBeans, IntelliJ IDEA и т.п.) стало ясно, что пакетные файлы для автоматизации сборки уже не соответствуют современным требованиям. Появились новые системы автоматизации сборки Apache Ant, Apache Maven.

Apache Ant (http://ant.apache.org) сталлогическим продолжением make, схожий по принципу работы инструмент, основной задачей которого была обеспечить автоматизацию процесса сборки Java приложений. Ant - это императивная командная система, созданная для кроссплатформенного применения. Изначально ant разрабатывался для сборки и компановки java-проектов.

Для java-разработчиков большой проблемой применения пакетных файлов было то, что они сильно завязаны на команды операционной системы (OC). В случае, если необходимо было обеспечить сборку проекта в разных операционных системах, то нужно было использовать не только разные наборы и параметры команд, но и формат командных файлов. Разработка собственного командного файла сборки под каждую платформу – это не лучший выбор для кроссплатформенных приложений. В результате Apache Ant был спроектирован таким образом, что часто применяемые при сборке команды ОС обернуты внутренними командами Ant, а скрипты сборки описываются в формате XML. Более подробно описание и примеры использования Apache Ant приведены здесь.

Широкое распространение получила декларативная система автоматизации сборки Apache Maven согласно описанию проектного pom.xml файла формата XML. В файлах проекта pom.xml содержатся не отдельные команды, а описание проекта. Все задачи по обработке файлов maven выполняет с использованием плагинов.

В настоящее время maven развился в специализированную комплексную систему управления сложным процессом создания программного обеспечения и представляет собой обобщенную систему управления разработкой с огромным количеством дополнительных возможностей, применяемых в большинстве сценариев разработки ПО. Многие среды разработки приложений для языка Java обеспечивают интеграцию с этой системой.

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

В связи с большим объемом информации по Apache Maven на сайте представлено несколько страниц, где можно ближе познакомиться с общим описанием данного программного продукта и его возможностями, а также увидеть многочисленные примеры использования данной системы.

  Рейтинг@Mail.ru