Ant+Ivy: закроем тему управления зависимостями при сборке проектов

За полгода в фоновом режиме перевел сборку подконтрольных проектов на Ant+Ivy. До этого использовался Maven 1, который функционально устраивал, но требовал создания правильного окружения — Maven правильной версии, правильный набор плагинов правильных версий, иногда правильно пропатченных. В результате доходило до абсурда — один из проектов собирался только на одной машине, попытки воссоздать окружение на другой ни к чему не привели.

Все это подтолкнуло к упрощению процесса сборки — переходу обратно на Apache Ant. При этом требования к окружению свелись к минимуму — должен быть установлен Sun JDK, Ant правильной версии (1.7) и «большие» библиотеки (типа Eclipse).

Конечно, Ant требует описания процесса сборки для каждого проекта, а в Maven для проектов стандартной структуры стандартная сборка уже описана. Ну что ж, пришлось оформить описание сборки виде библиотеки. Теперь на новый простой проект трачу не больше времени, чем при использовании Maven. Библиотека опубликована под именем Buildbase, уже достаточно функциональна и стабильна, но как самостоятельный проект не рекламируется.

Второе преимущество Maven — управление зависимостями: описание зависимостей, скачивание недостающих артефактов из репозитория и т.п. Сначала я нашел простенькую библиотеку и временно перевел все на нее. Затем разобрался с Ivy и понял, что реализация управления зависимостями в этом инструменте сделана гораздо грамотнее, чем в Maven. Написать про Ivy обещал уже давно, мешала одна непонятность — не мог понять, как использовать локальный кэш зависимостей. Месяц назад разобрался и с этим, читайте Getting Started with Ant+Ivy.»

01.01.2008  Метки: ,   Рубрики: Инструменты, Разработка  Комментариев нет

Покажи свои программы

…и я скажу, кто ты? Как и обещал, показываю список программ, которые понадобились в течение недели после переустановки ОС на рабочем компьютере. Это не каталог лучшего софта, это то, к чему я привык и реально пользуюсь. Заодно попытка понять, насколько сильно все завязано на платный софт.»

04.11.2007  Метки: , , , , , , , , , ,   Рубрики: Программы  Один комментарий

Сборка проектов: Eclipse и Ant

Сборка Java-проектов производится либо из среды разработки, либо в пакетном режиме. Первый вариант используется в процессе кодирования для исправления ошибок компиляции и отладки. Второй вариант необходим для непрерывной интеграции (continuous integration), тестирования и сборки релизов. Если разработку вести в среде Eclipse, а для пакетной сборки пользоваться Ant, многие правила сборки приходится определять дважды: в Eclipse — каждое действие, которое необходимо выполнить, оформляется в виде билдера (builder), и в Ant — для каждой осмысленной группы действий определяется цель (target).»

18.10.2007  Метки: ,   Рубрики: Разработка  Комментариев нет

Странности Ant-билдеров в Eclipse 3.3

В Eclipse можно указать четыре события, при наступлении которых будут запускаться внешние билдеры: During a «Clean», After a «Clean», Manual Build и Auto Build. То есть, во время очистки сгенерированных файлов, после этого, а также во время сборки проекта вручную и автоматически. Причем, в последних двух случаях можно дополнительно указать набор исходных файлов (relevant resources) и билдер будет запускаться только при изменении этих файлов.

Билдер, который осуществляет генерацию какого-нибудь файла, часто используется только в последних трех случаях — полную очистку проекта проще осуществить отдельно, не разбираясь, к какому билдеру относятся сгенерированные файлы.

В Eclipse 3.3 Ant-билдеры, для которых указаны relevant resources и которые не работают During a «Clean», не запускаются и After a «Clean»! В 3.2 всё было нормально. Будьте бдительны!»

17.07.2007  Метки: ,   Рубрики: Разработка  Комментариев нет

Управление зависимостями в стиле Maven для Ant

Ant и Maven — это распространенные инструменты сборки Java проектов. У Maven есть безусловное преимущество — он умеет автоматически скачивать зависимости, необходимые для сборки проекта. Оказывается, для Ant есть Dependendcies Download task, позволяющая делать то же самое, причем пользоваться Maven-репозиториями.
Ссылка по теме: Dependency Management Choices: Maven, Ant + Maven Antlib, Ivy

07.07.2007  Метки: ,   Рубрики: Разработка  Комментариев нет