150 likes | 424 Views
Тема 7. Ant. XP. eXtreme Programming. Ant – (ant.apache.org). Ant – инструмент для создания, развертывания, запуска программ Java , создания базы данных, выполнения различных проверок и пр. Оформляется в виде xml- кода. XP. Вызов Ant. Может вызываться из командной строки: >ant
E N D
Тема 7 Ant XP eXtreme Programming
Ant – (ant.apache.org) Ant – инструмент для создания, развертывания, запуска программ Java, создания базы данных, выполнения различных проверок и пр. Оформляется в виде xml-кода. XP
Вызов Ant Может вызываться из командной строки: >ant По умолчаниюобращается к файлу build.xml текущего каталога. Можно вызвать для другого файла, указав параметры: >ant –f имя_файла имя_задачи XP
Концепция Ant Основные составляющие Ant: • проект (тег project); • свойства (тег property)– переменные, которые используются в сеансе Ant; • целевые объекты (тег target) – содержат блоки xml-кода, которые выполняются в форме задач; • задачи – фактически выполняемые действия; • элементы, например, наборы файлов и каталогов XP
Пример простого файла Ant – build.xml <?xml version="1.0"?> <project name="timex" basedir="." default="printmessage"> <target name="printmessage"> <echo>Это просто пробный текст.</echo> </target> </project> Консольное окно выполнения задачи printmessageпокажет: Buildfile: C:\Java\Works\timex\build.xml printmessage: [echo] Это просто пробный текст. BUILD SUCCESSFUL Total time: 157 milliseconds XP
Атрибуты проекта • basedir – текущий рабочий каталог; • name – имя проекта; • default – задача по умолчанию. XP
Категории задач Ant • Задачи архивации (war); • Задачи компиляции (javac); • Файловые задачи (copy, delete, move); • Вывод сообщений (echo); • Задачи свойств по установке внутренних переменных. XP
Структура каталогов учебного проекта XP
Задание свойств для учебного проекта Свойства задаются с помощью тега property с атрибутами name и value. Обращение к свойствам осуществляется с помощью ${name} <!--установка переменной для имени проекта --> <property name="appname" value="${ant.project.name}"/> <!--переменная для обозначения среды исполнения --> <property name="env" value="local" /> <!-- настройки web-сервера и сервера баз данных содержатся в фале local.properties --> <property file="local.properties" /> XP
Задание свойств для обозначения каталогов учебного проекта <!--Каталог build --> <property name="build.dir" value="build" /> <!--Каталог dist – файл war--> <property name="dist.dir" value="dist" /> <!--Каталог lib – внешние файлы jar --> <property name="lib.dir" value="lib" /> <!--Каталог src – исходные коды --> <property name="src.dir" value="src" /> <!--Каталог dist – файлы данных --> <property name="data.dir" value="data" /> <property name="tmp.dir" value="tmp" /> <property name="img.dir" value="images" /> XP
Задание свойств для обозначения каталогов учебного проекта <!--Каталог src/conf – файлы конфигурации --> <property name="conf.dir" value="${src.dir}/conf" /> <!--Каталог src/web – статические web-файлы --> <property name="web.dir" value="${src.dir}/web" /> <!--Каталог build/timex – рабочий каталог web-архива --> <property name="war.dir" value="${build.dir}/${appname}"/> <!– war-файл build/timex.jar--> <property name="war.file"value="${dist.dir}/${appname}.war" /> <!--Каталог build/timex/WEB-INF --> <property name="webinf.dir" value="${war.dir}/WEB-INF" /> <!--Каталог build/timex/WEB-INF/classes – откомпилированные классы --> <property name="class.dir" value="${war.dir}/WEB-INF/classes" /> <!--Каталоги build/timex/WEB-INF/lib и build/timex/WEB-INF/jsp --> <property name="warlib.dir" value="${war.dir}/WEB-INF/lib" /> <property name="jsp.dir" value="${war.dir}/WEB-INF/jsp" /> XP
Задание свойств для обозначения каталогов учебного проекта <!--Каталог файлов представлений (jsp-файлы)–\ src/java/com/visualpatterns/timex/view --> <property name="views.dir" value="${src.dir}/java/com/visualpatterns/timex/view" /> <!--Каталог файлов модели (Hibernate и файлы настроек) – src/java/com/visualpatterns/timex/model --> <property name="model.dir" value="${src.dir}/java/com/visualpatterns/timex/model" /> <!--Каталог файлов-контроллеров src/java/com/visualpatterns/timex/controller --> <property name="controller.dir" value="${src.dir}/java/com/visualpatterns/timex/controller" /> <!--Каталог файлов утилит – src/java/com/visualpatterns/timex/util --> <property name="util.dir" value="${src.dir}/java/com/visualpatterns/timex/util" /> <!-- Файлs настроек local.propertiesи timex-servlet.properties --> <property name="envprops" value="${env}.properties" /> <property name="timexprops" value="${class.dir}/timex-servlet.properties"/> XP
Установка пути к классам (к jar-файлам) проекта <path id="master-classpath" description="Master CLASSPATH for this script"> <!– Все jar-файлы из каталога lib--> <fileset dir="${lib.dir}"> <include name="*.jar" /> </fileset> <!– Все class-файлы проекта --> <pathelement location="build/timex/WEB-INF/classes/" /> </path> XP
Целевой объект – init.Создание всех каталогов учебного проекта <target name="init" description="Setup for build script"> <mkdir dir="${conf.dir}" /> <mkdir dir="${web.dir}" /> <mkdir dir="${data.dir}" /> <mkdir dir="${class.dir}" /> <mkdir dir="${lib.dir}" /> <mkdir dir="${warlib.dir}" /> <mkdir dir="${jsp.dir}" /> <mkdir dir="${views.dir}" /> <mkdir dir="${model.dir}" /> <mkdir dir="${controller.dir}" /> <mkdir dir="${util.dir}" /> </target> XP
Целевой объект –compile.Компиляция файлов учебного проекта <!--Вызов компилятора Java для всех java-файлов в src --> <target name="compile" depends="init" description="Compiles .java files to WAR directory"> <javac srcdir="${src.dir}" destdir="${class.dir}" debug="true" failonerror="true" classpathref="master-classpath" depend="true"/> </target> XP