Краткий экскурс по задачам 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
в своём имени.
Делает то же самое, но была установлена ссылка на <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 установлен.