Java Advanced Apache Ant
2 СПбГУ ИТМО Georgiy KorneevJava Advanced / Описание и проверка структуры XML Содержание 1.Введение 2.Задания 3.Цели 4.Проекты 5.Свойства 6.Заключение
Введение Часть 1
4Georgiy KorneevJava Advanced / Описание и проверка структуры XML Apache Ant Язык описания build-файлов Основан на XML Межплатформенный
5Georgiy KorneevJava Advanced / Описание и проверка структуры XML Основные понятия Строительные блоки Задание Цель Проект Концепции Свойства Пути Множества файлов
Задания Часть 2
7Georgiy KorneevJava Advanced / Описание и проверка структуры XML Задание (task) Элементарная операция build-файла Тип задания Аргументы задания Задание завершается успешно либо неуспешно Примеры Откомпилировать все.java файлы в каталоге sources и поместить результат в каталог classes Упаковать классы из каталога classes в.jar файл
8Georgiy KorneevJava Advanced / Описание и проверка структуры XML Описание заданий Задание задается XML-элементом Тип задания – имя элемента Аргументы задания – атрибуты элемента и вложенные элементы Пример задания
9Georgiy KorneevJava Advanced / Описание и проверка структуры XML Компиляция Задание javac – компилирует исходный код на Java Атрибуты srcdir– каталог с исходными кодами destdir– каталог для.class файлов includes? – какие файлы компилировать excludes?– какие файлы не компилировать classpath– classpath для компилятора Пример
10Georgiy KorneevJava Advanced / Описание и проверка структуры XML Применение includes и excludes Атрибут includes Список масок файлов, которые включаются в множество По умолчанию – все файлы Атрибут excludes Список масок файлов, которые НЕ включаются в множество По умолчанию – пустое множество Excludes имеет приоритет
11Georgiy KorneevJava Advanced / Описание и проверка структуры XML Маски файлов Специальные символы ?– любой символ имени *– любая последовательность символов имени **– любой каталог Примеры Все.java файлы в текущем каталоге *.java Все.java файлы в текущем каталоге и подкаталогах **/*.java
12Georgiy KorneevJava Advanced / Описание и проверка структуры XML Создание архивов Задания jar/zip – создают.jar/.zip файлы Атрибуты destfile– имя файла архива basedir– корневой каталог архива update? – обновлять/перезаписывать includes/excludes Примеры
13Georgiy KorneevJava Advanced / Описание и проверка структуры XML Генерация JavaDoc Задание javadoc – компилирует JavaDoc документацию Атрибуты sourcepath– где брать исходники destdir– куда сохранять документацию packagenames – имена пакетов Пример
14Georgiy KorneevJava Advanced / Описание и проверка структуры XML Запуск java-программ Задание java Атрибуты classname – имя основного класса classpath – classpath input? – имя файла для stdin output?– имя файла для stdout Вложенные элементы: arg Пример
15Georgiy KorneevJava Advanced / Описание и проверка структуры XML Аргументы командной строки Элемент arg Атрибуты value? – значение аргумента file? – имя файла path? – путь line? – аргумента разделенные пробелами Примеры
16Georgiy KorneevJava Advanced / Описание и проверка структуры XML Запуск программ Задача exec – запускает произвольную программу Атрибуты executable – имя исполняемого файла dir?– имя рабочего каталога input? – имя файла для stdin output?– имя файла для stdout Вложенные элементы: arg Пример
Цели Часть 3
18Georgiy KorneevJava Advanced / Описание и проверка структуры XML Цель (target) Набор заданий, исполняемых последовательно Зависимости между целями Компиляция одного модуля зависит от другого Упаковка производится после компиляции и т.п. Условное выполнение Выполнение не всех действий Успешное / неуспешное завершение
19Georgiy KorneevJava Advanced / Описание и проверка структуры XML Описание целей Описываются XML-элементом target Атрибуты name – имя цели description? – описание цели Пример
20Georgiy KorneevJava Advanced / Описание и проверка структуры XML Зависимости между целями Атрибут depends – список целей, от которых зависит данная, разделенных запятыми Примеры ...
21Georgiy KorneevJava Advanced / Описание и проверка структуры XML Условное выполнение Атрибут if – цель выполняется если указанное свойство установлено Атрибут unless – цель выполняется если указанное свойство НЕ установлено Пример
Проекты Часть 4
23Georgiy KorneevJava Advanced / Описание и проверка структуры XML Проект Набор целей и задач При запуске выполняются все задачи выполняется одна или несколько целей Успешное / неуспешное завершение
24Georgiy KorneevJava Advanced / Описание и проверка структуры XML Описание проекта Описываются XML-элементом project Атрибуты name?– имя проекта default?– имя цели по умолчанию basedir?– базовая директория Пример...
25Georgiy KorneevJava Advanced / Описание и проверка структуры XML Запуск Ant Из командной строки ant Из Java java org.apache.tools.ant.Main [опции] [цели] java org.apache.tools.ant.launch.Launcher [опции] [цели]
26Georgiy KorneevJava Advanced / Описание и проверка структуры XML Опции Ant Основные опции -libГде искать библиотеки -buildfileимя build-файла -noclasspathИгнорировать classpath Информация об Ant -helpПомощь по опциям -versionВерсия Ant Выводимая информация -quietМало информации -verboseМного информации -debugОтладочная информация
27Georgiy KorneevJava Advanced / Описание и проверка структуры XML Организация build-файла Основной файл – обычно build.xml Вспомогательные файлы подключаются элементом import Атрибут file – имя файла Атрибут optional– обязателен ли
Свойства Часть 5
29Georgiy KorneevJava Advanced / Описание и проверка структуры XML Свойства Набор пар имя-значение Свойства могут использоваться в атрибутах-аргументах задач Пример использования свойств
30Georgiy KorneevJava Advanced / Описание и проверка структуры XML Встроенные свойства Свойства задаваемые Ant basedirПолный путь к базовой директории проекта ant.fileПолный путь к build-файлу ant.versionПолный project.nameИмя проекта ant.java.versionВерсия Java Свойства задаваемые Java java.homeПуть к директории Java java.class.pathClasspath os.nameНазвание операционной системы os.versionВерсия операционной системы user.homeДомашний каталог пользователя user.dirТекущий каталог
31Georgiy KorneevJava Advanced / Описание и проверка структуры XML Установка свойств Задание property устанавливает значение свойства Атрибуты name – имя свойства value? – значение свойства location? – путь к файлу или каталогу Примеры
32Georgiy KorneevJava Advanced / Описание и проверка структуры XML Загрузка свойств Задание property загружает свойства из.property файла Атрибуты file? – путь к файлу url? – URL файла resource? – путь к ресурсу Примеры
33Georgiy KorneevJava Advanced / Описание и проверка структуры XML Пример.property-файла build.compiler=jikes deploy.server=lucky deploy.port=8080 deploy.url=
34Georgiy KorneevJava Advanced / Описание и проверка структуры XML Проверка наличия файла Задание available устанавливает свойство если файл/ресурс доступен Атрибуты property– имя свойства file? – имя файла resource? – имя ресурса type? – тип (file или dir) value? – устанавливаемое значение Пример
35Georgiy KorneevJava Advanced / Описание и проверка структуры XML Задание tstamp Задание tstamp Устанавливает свойства переменные DSTAMP и TSTAMP и время запуска для других программ Установленные значения применяются другими заданиями Пример tstamp
36Georgiy KorneevJava Advanced / Описание и проверка структуры XML Проверка изменения файлов Задание uptodate устанавливает свойство если файл/ресурс доступен Атрибуты property– имя свойства srcfile – имя проверяемого файла targetfile– имя файла с которым сравнивают value? – устанавливаемое значение Пример
Заключение Часть 6
38Georgiy KorneevJava Advanced / Описание и проверка структуры XML Ссылки Ant Homepage // Ant Manual // Overview of Ant tasks // ml ml
39 СПбГУ ИТМО Georgiy KorneevJava Advanced / Описание и проверка структуры XML Вопросы