№ | Слайд | Текст |
1 |
 |
Java AdvancedApache Ant |
2 |
 |
СодержаниеВведение Задания Цели Проекты Свойства Заключение Java Advanced / Описание и проверка структуры XML |
3 |
 |
ВведениеЧасть 1 |
4 |
 |
Apache AntЯзык описания build-файлов Основан на XML Межплатформенный Java Advanced / Описание и проверка структуры XML |
5 |
 |
Основные понятияСтроительные блоки Задание Цель Проект Концепции Свойства Пути Множества файлов Java Advanced / Описание и проверка структуры XML |
6 |
 |
ЗаданияЧасть 2 |
7 |
 |
Задание (task)Элементарная операция build-файла Тип задания Аргументы задания Задание завершается успешно либо неуспешно Примеры Откомпилировать все .java файлы в каталоге sources и поместить результат в каталог classes Упаковать классы из каталога classes в .jar файл Java Advanced / Описание и проверка структуры XML |
8 |
 |
Описание заданийЗадание задается XML-элементом Тип задания – имя элемента Аргументы задания – атрибуты элемента и вложенные элементы Пример задания <javac srcdir="source" destdir="classes"/> <exec dir="src" executable="cmd.exe" output="dir.txt"><arg line="/c dir"/></exec> Java Advanced / Описание и проверка структуры XML |
9 |
 |
КомпиляцияЗадание javac – компилирует исходный код на Java Атрибуты srcdir – каталог с исходными кодами destdir – каталог для .class файлов includes? – какие файлы компилировать excludes? – какие файлы не компилировать classpath – classpath для компилятора Пример <javac srcdir="source" destdir="classes"/> Java Advanced / Описание и проверка структуры XML |
10 |
 |
Применение includes и excludesАтрибут includes Список масок файлов, которые включаются в множество По умолчанию – все файлы Атрибут excludes Список масок файлов, которые НЕ включаются в множество По умолчанию – пустое множество Excludes имеет приоритет Java Advanced / Описание и проверка структуры XML |
11 |
 |
Маски файловСпециальные символы ? – любой символ имени * – любая последовательность символов имени ** – любой каталог Примеры Все .java файлы в текущем каталоге *.java Все .java файлы в текущем каталоге и подкаталогах **/*.java Java Advanced / Описание и проверка структуры XML |
12 |
 |
Создание архивовЗадания jar/zip – создают .jar/.zip файлы Атрибуты destfile – имя файла архива basedir – корневой каталог архива update? – обновлять/перезаписывать includes/excludes Примеры <jar destfile="compress.jar" basedir="classes" includes="**/*.class"/> <zip destfile=“pics.zip" basedir=“images" includes="**/*.jpg"/> Java Advanced / Описание и проверка структуры XML |
13 |
 |
Генерация JavaDocЗадание javadoc – компилирует JavaDoc документацию Атрибуты sourcepath – где брать исходники destdir – куда сохранять документацию packagenames – имена пакетов Пример <javadoc destdir="docs/api“ sourcepath="src/;moduleA/src" packagenames= "api.* "/> Java Advanced / Описание и проверка структуры XML |
14 |
 |
Запуск java-программЗадание java Атрибуты classname – имя основного класса classpath – classpath input? – имя файла для stdin output? – имя файла для stdout Вложенные элементы: arg Пример <java classname="test.Main" classpath="classes.jar“> Java Advanced / Описание и проверка структуры XML |
15 |
 |
Аргументы командной строкиЭлемент arg Атрибуты value? – значение аргумента file? – имя файла path? – путь line? – аргумента разделенные пробелами Примеры <arg value="-h"/> <arg file="files.lst"/> <arg path="classes:lib/ant.jar"/> Java Advanced / Описание и проверка структуры XML |
16 |
 |
Запуск программЗадача exec – запускает произвольную программу Атрибуты executable – имя исполняемого файла dir? – имя рабочего каталога input? – имя файла для stdin output? – имя файла для stdout Вложенные элементы: arg Пример <exec dir="src" executable="cmd.exe" output="dir.txt"> <arg line="/c dir"/> </exec> Java Advanced / Описание и проверка структуры XML |
17 |
 |
ЦелиЧасть 3 |
18 |
 |
Цель (target)Набор заданий, исполняемых последовательно Зависимости между целями Компиляция одного модуля зависит от другого Упаковка производится после компиляции и т.п. Условное выполнение Выполнение не всех действий Успешное / неуспешное завершение Java Advanced / Описание и проверка структуры XML |
19 |
 |
Описание целейОписываются XML-элементом target Атрибуты name – имя цели description? – описание цели Пример <target name="build" description="Строит приложение"> <javac ... /> <jar ... /> </target> Java Advanced / Описание и проверка структуры XML |
20 |
 |
Зависимости между целямиАтрибут depends – список целей, от которых зависит данная, разделенных запятыми Примеры <target name="build" depends="init, compile, pack"> <echo message="Build competed"/> </target> <target name="build-module-C" depends="build-module-A, build-module-B"> ... </target> Java Advanced / Описание и проверка структуры XML |
21 |
 |
Условное выполнениеАтрибут if – цель выполняется если указанное свойство установлено Атрибут unless – цель выполняется если указанное свойство НЕ установлено Пример <target name="build-module-C" depends="build-module-A, build-module-B"> <target name="build-module-C-from-A" if="module-A-present"> <target name="build-module-C-from-scratch« unless="module-A-present"> <target name="build-module-C" depends="build-module-C-from-A, build-module-C-from-scratch"> Java Advanced / Описание и проверка структуры XML |
22 |
 |
ПроектыЧасть 4 |
23 |
 |
ПроектНабор целей и задач При запуске выполняются все задачи выполняется одна или несколько целей Успешное / неуспешное завершение Java Advanced / Описание и проверка структуры XML |
24 |
 |
Описание проектаОписываются XML-элементом project Атрибуты name? – имя проекта default? – имя цели по умолчанию basedir? – базовая директория Пример <project name="MyFirstProject" default="all" basedir="."> ... </project> Java Advanced / Описание и проверка структуры XML |
25 |
 |
Запуск AntИз командной строки ant <опции> <цели> Из Java java org.apache.tools.ant.Main [опции] [цели] java org.apache.tools.ant.launch.Launcher [опции] [цели] Java Advanced / Описание и проверка структуры XML |
26 |
 |
Опции AntОсновные опции Основные опции -lib Где искать библиотеки -buildfile Имя build-файла -noclasspath Игнорировать classpath Информация об Ant Информация об Ant -help Помощь по опциям -version Версия Ant Выводимая информация Выводимая информация -quiet Мало информации -verbose Много информации -debug Отладочная информация Java Advanced / Описание и проверка структуры XML |
27 |
 |
Организация build-файлаОсновной файл – обычно build.xml Вспомогательные файлы подключаются элементом import Атрибут file – имя файла Атрибут optional – обязателен ли Java Advanced / Описание и проверка структуры XML |
28 |
 |
СвойстваЧасть 5 |
29 |
 |
СвойстваНабор пар имя-значение Свойства могут использоваться в атрибутах-аргументах задач Пример использования свойств <javac srcdir="${project.dir}/sources" destdir=" ${project.dir}/classes" /> Java Advanced / Описание и проверка структуры XML |
30 |
 |
Встроенные свойстваСвойства задаваемые Ant Свойства задаваемые Ant basedir Полный путь к базовой директории проекта ant.file Полный путь к build-файлу ant.version Полный project.name Имя проекта ant.java.version Версия Java Свойства задаваемые Java Свойства задаваемые Java java.home Путь к директории Java java.class.path Classpath os.name Название операционной системы os.version Версия операционной системы user.home Домашний каталог пользователя user.dir Текущий каталог Java Advanced / Описание и проверка структуры XML |
31 |
 |
Установка свойствЗадание property устанавливает значение свойства Атрибуты name – имя свойства value? – значение свойства location? – путь к файлу или каталогу Примеры <property name="module-A-present" value=""/> <property name="project.dir" location="project"/> <property name="source.dir" location="${project.dir}/source"/> Java Advanced / Описание и проверка структуры XML |
32 |
 |
Загрузка свойствЗадание property загружает свойства из .property файла Атрибуты file? – путь к файлу url? – URL файла resource? – путь к ресурсу Примеры <property file="build.properties"/> <property url="file:///./project.properties"/> <property resource="resources/project.properties"/> Java Advanced / Описание и проверка структуры XML |
33 |
 |
Пример property-файла build.compiler=jikes deploy.server=lucky deploy.port=8080 deploy.url=http://${deploy.server}:${deploy.port}/ Java Advanced / Описание и проверка структуры XML |
34 |
 |
Проверка наличия файлаЗадание available устанавливает свойство если файл/ресурс доступен Атрибуты property – имя свойства file? – имя файла resource? – имя ресурса type? – тип (file или dir) value? – устанавливаемое значение Пример <avalilable property="module-A-present" file="lib/module-a.jar"/> Java Advanced / Описание и проверка структуры XML |
35 |
 |
Задание tstampЗадание tstamp Устанавливает свойства переменные DSTAMP и TSTAMP и время запуска для других программ Установленные значения применяются другими заданиями Пример tstamp Java Advanced / Описание и проверка структуры XML |
36 |
 |
Проверка изменения файловЗадание uptodate устанавливает свойство если файл/ресурс доступен Атрибуты property – имя свойства srcfile – имя проверяемого файла targetfile – имя файла с которым сравнивают value? – устанавливаемое значение Пример <uptodate property="module-A-ok" srcfile="ModuleA.java" targetfile="module-a.jar"/> Java Advanced / Описание и проверка структуры XML |
37 |
 |
ЗаключениеЧасть 6 |
38 |
 |
СсылкиAnt Homepage // http://ant.apache.org Ant Manual // http://ant.apache.org/manual/index.html Overview of Ant tasks // http://ant.apache.org/manual/tasksoverview.html Java Advanced / Описание и проверка структуры XML |
39 |
 |
ВопросыJava Advanced / Описание и проверка структуры XML |
«Java Advanced» |