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  Метки: ,   Рубрики: Инструменты, Разработка  Комментариев нет

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

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

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