Краткий экскурс по задачам Ant

Ant предоставляет слишком много задач, чтобы дать полное описание того, что каждая из них делает. Следующий список дает представление о категориях,
на которые можно разделить все задачи.

Archive Tasks
Audit/Coverage Tasks
Compile Tasks
Deployment Tasks
Documentation Tasks
EJB Tasks
Execution Tasks
File Tasks
Java2 Extensions Tasks
Logging Tasks
Mail Tasks
Miscellaneous Tasks
.NET Tasks
Pre-process Tasks
Property Tasks
Remote Tasks
SCM Tasks
Testing Tasks
Visual Age for Java Tasks

Краткое описание основных:

Archive Tasks

Имя задачи Описание
Jar Упаковывает в Jar набор файлов
Unzip Распаковывает zip архивы
Zip Создаёт zip архивы

Compile Tasks

Имя задачи Описание
Javac Компилирует определённые исходные файлы внутри запущенной Ant’ом VM, или с помощью новой VM, если fork атрибут определён
JspC Запускает JSP-компилятор. Используется для предварительной компиляции JSP-страниц для более быстрого запуска их с сервера, или при отсутствии JDK на нём, или просто для проверки синтаксиса, без установки их на сервер
Wljspc Компилирует JSP-страницы, используя Weblogic JSP компилятор

Execution Tasks

Имя задачи Описание
Ant Запускает Ant для выбранного build файла, возможна передача параметров (или их новых значений). Эта задача может быть использована для запуска подпроектов
AntCall Запускает другую цель внутри того же build-файла, по желанию передавая параметры
Exec Исполняет системную команду. Когда атрибутos определён, команда исполняется, только если Ant запущен под определённую систему
Java Исполняет Java класс внутри запущенной (Ant) VM или с помощью другой, если fork атрибут определён

File Tasks

Имя задачи Описание
Copy Копирует файл или Fileset в новый файл или директорию
Delete Удаляет как один файл, так и все файлы и поддиректории в определённом каталоге, или набор файлов, определённых одним или несколькими FileSet’ами
Mkdir Создаёт директорию. Не существующие внутренние директории создадутся, если будет необходимость
Move Переносит файл в новый файл или каталог, или набор(ы) файлов в новую директорию

Miscellaneous Tasks

Имя задачи Описание
Echo Выводит текст в System.out или в файл
Fail Выходит из текущей сборки, генерируя BuildException, по желанию печатая сообщение
Input Позволяет пользователю интерактивно вмешиваться в процесс сборки путём вывода сообщений и считывания строки с консоли
Taskdef Добавляет задачу в проект, после чего она может быть использована в текущем проекте

Property Tasks

Имя задачи Описание
Available Устанавливает параметр, если определенный файл, каталог, class в classpath, или JVM системный ресурс доступен во время выполнения
Condition Устанавливает параметр, если определённое условие выполняется
LoadFile Загружает файл в параметр
Property Устанавливает параметр (по имени и значению), или набор параметров (из файла или ресурса) в проект

Типы

Краткий список основных типов (на самом деле их больше):

DirSet
FileSet
PatternSet

DirSet представляет собой набор каталогов. Эти каталоги могут находиться в базовой директории, и поиск осуществляется по шаблону. DirSet может находиться внутри некоторых задач или выноситься в проект с целью дальнейшего к нему обращения по ссылке.

PatternSet (набор шаблонов) может быть использован как внутренняя задача. В дополнение DirSet поддерживает атрибуты PatternSet и внутренние <include>, <includesfile>, <exclude> и <excludesfile> элементы <patternset>.

Атрибут Описание Обязательность
dir Корневая директория этого DirSet Да
includes Список шаблонов (через запятую или пробел) для каталогов, которые должны быть включены, если атрибут пропущен, все каталоги включаются Нет
includesfile Имя файла; каждая строчка этого файла понимается как шаблон для включения в поиск Нет
excludes Список шаблонов (через запятую или пробел) для каталогов, которые должны быть исключены, если атрибут пропущен, все каталоги включаются Нет
excludesfile Имя файла; каждая строчка этого файла понимается как шаблон для исключения из поиска Нет
casesensitive Определяет влияние регистров для шаблонов (true|yes|on или false|no|off) Нет; по умолчанию true

Примеры:

<dirset dir="${build.dir}"> <include name="apps/**/classes"/> <exclude name="apps/**/*Test*"/></dirset>

Группирует все каталоги с именем classes, найденные под apps поддиректорией ${build.dir}директории, пропуская те, что имеют текст Test
в своём имени.

<dirset dir="${build.dir}"> <patternset id="non.test.classes"> <include name="apps/**/classes"/> <exclude name="apps/**/*Test*"/> </patternset></dirset>

Делает то же самое, но была установлена ссылка на <patternset>.

<dirset dir="${debug_build.dir}"> <patternset refid="non.test.classes"/></dirset>

Таким образом можно к ней обратиться.

FileSet

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

Атрибут Описание Обязательность
dir Корень каталогов этого FileSet Один должен быть обязательно
file Сокращение для определения Fileset из одного файла
includes Список шаблонов (через запятую или пробел) для каталогов, которые должны быть включены, если атрибут пропущен, все каталоги включаются Нет
includesfile Имя файла; каждая строчка этого файла понимается как шаблон для включения в поиск Нет
excludes Список шаблонов (через запятую или пробел) для каталогов, которые должны быть исключены, если атрибут пропущен, все каталоги включаются Нет
excludesfile Имя файла: каждая строчка этого файла понимается как шаблон для исключения из поиска Нет
casesensitive Определяет влияние регистров для шаблонов (true|yes|on или false|no|off) Нет; по умолчанию true

Примеры:

<fileset dir="${server.src}" casesensitive="yes"> <include name="**/*.java"/> <exclude name="**/*Test*"/></fileset>

Группирует все файлы в каталоге ${server.src}, являющимися Java кодами и не содержащими текста Test в своём имени.

PatternSet

Шаблоны могут быть сгруппированы в наборы и позже использованы путём обращения по ссылке. PatternSet может находиться внутри некоторых задач или выноситься в проект с целью дальнейшего к нему обращения по ссылке.

Шаблоны могут определяться с помощью внутренних <include>, или <exclude> элементов или с помощью следующих атрибутов:

Атрибут Описание
includes Список шаблонов (через запятую или пробел) для каталогов, которые должны быть включены, если атрибут пропущен, все каталоги включаются
includesfile Имя файла; каждая строчка этого файла понимается как шаблон для включения в поиск. Можно задавать несколько
excludes Список шаблонов (через запятую или пробел) для каталогов, которые должны быть исключены, если атрибут пропущен, все каталоги включаются
excludesfile Имя файла; каждая строчка этого файла есть шаблон для исключения из поиска. Можно задавать несколько

Параметры определённые как внутренние элементыincludeиexclude

Эти элементы определяют единичный шаблон включений или исключений.

Атрибут Описание Обязательность
name Шаблон, который или включается, или исключается Нет
if Использовать этот шаблон, если параметр установлен Нет
unless Использовать этот шаблон, если параметр не установлен Нет

Если брать шаблоны извне, то нужно использовать includesfile/excludesfile атрибуты или элементы.

Атрибут Описание Обязательность
name Имя файла, который содержит шаблоны Нет
if Читать этот файл, только если параметр установлен Нет
unless Читать этот файл, только если параметр не установлен Нет

Атрибут рatternset может содержать внутри другой patternset.

Примеры:

<patternset id="sources"> <include name="std/**/*.java"/> <include name="prof/**/*.java" if="professional"/> <exclude name="**/*Test*"/></patternset>

Включает файлы в подкаталогеprof,если параметру professional
установлено некоторое значение.

Следующих два набора:

<patternset includesfile="some-file"/>

и

<patternset> <includesfile name="some-file"/> <patternset/>

одинаковы.

<patternset> <includesfile name="some-file"/> <includesfile name="${some-other-file}" if="some-other-file" /> <patternset/>

Будет читать шаблоны из файлов, один из них только тогда, когда параметр some-other-file установлен.