28 октября 2012 г.

Принципы написания ant-скриптов

Сборщик проектов Ant выполняет только те действия, которые описаны в файле build.xml (обычно лежит в корне проекта, который необходимо собрать). Этот файл иногда также называют ant-скриптом, хотя его содержимое представляет собой xml.

В скриптах ant имеется такое понятие, как цель (target). Это именованный набор команд, который выполняется ant-ом. В рамках одного проекта может быть несколько целей. Одна из этих целей может быть указана как цель по умолчанию. Одна цель может зависеть от другой. Таким образом, при выполнении этой цели, сначала будет выполнена та, от которой зависит текущая. Также может быть указана зависимость от нескольких целей сразу. Все эти цепочки зависимостей ant успешно обрабатывает.

Для примера рассмотрим следующий скрипт:
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant.test" default="clean">
<target name="clean">
<echo>CLEAN target invoked</echo>
</target>
<target name="compile" depends="clean">
<echo>COMPILE target invoked</echo>
</target>
</project>
Он не делает ничего полезного, зато позволяет быстро разобраться что к чему. Сохраните его в файле build.xml, затем перейдите в ту директорию, где вы сохранили этот файл.

Проект называется ant.test, для него указана цель по умолчанию под названием "clean". Следовательно, для выполнения этой цели достаточно ввести команду "ant", и эта цель будет выполнена автоматически. Элемент <echo> просто выводит своё содержимое в консоль. Результат работы:
clean:
     [echo] CLEAN target invoked
BUILD SUCCESSFUL
Если мы хотим выполнить другую цель, то нужно при вызове ant задать её явно:
ant compile
В приведенном выше скрипте при помощи атрибута depends указана зависимость цели compile от clean, следовательно, сначала будет выполнена clean, а затем compile. Результатом работы будет вывод уже двух строк:
clean:
     [echo] CLEAN target invoked
compile:
     [echo] COMPILE target invoked
BUILD SUCCESSFUL
Таким образом, вызывается целая цепочка команд.

В следующей заметке мы рассмотрим реальный скрипт сборки java-проекта, в котором будут задействованы все основные команды.

Комментариев нет:

Отправить комментарий