Мы изучили различные аспекты Ant с помощью веб-приложения Hello World Fax по частям.
Теперь пришло время собрать все воедино, чтобы создать полный и полный файл build.xml. Рассмотрим файлы build.properties и build.xml следующим образом:
build.properties
deploy.path = c:\tomcat6\webapps
build.xml
<?xml version = "1.0"?> <project name = "fax" basedir = "." default = "usage"> <property file = "build.properties"/> <property name = "src.dir" value = "src"/> <property name = "web.dir" value = "war"/> <property name = "javadoc.dir" value = "doc"/> <property name = "build.dir" value = "${web.dir}/WEB-INF/classes"/> <property name = "name" value = "fax"/> <path id = "master-classpath"> <fileset dir = "${web.dir}/WEB-INF/lib"> <include name = "*.jar"/> </fileset> <pathelement path = "${build.dir}"/> </path> <target name = "javadoc"> <javadoc packagenames = "faxapp.*" sourcepath = "${src.dir}" destdir = "doc" version = "true" windowtitle = "Fax Application"> <doctitle><![CDATA[<h1> = Fax Application = </h1>]]> </doctitle> <bottom><![CDATA[Copyright © 2011. All Rights Reserved.]]> </bottom> <group title = "util packages" packages = "faxapp.util.*"/> <group title = "web packages" packages = "faxapp.web.*"/> <group title = "data packages" packages = "faxapp.entity.*:faxapp.dao.*"/> </javadoc> </target> <target name = "usage"> <echo message = ""/> <echo message = "${name} build file"/> <echo message = "-----------------------------------"/> <echo message = ""/> <echo message = "Available targets are:"/> <echo message = ""/> <echo message = "deploy --> Deploy application as directory"/> <echo message = "deploywar --> Deploy application as a WAR file"/> <echo message = ""/> </target> <target name = "build" description = "Compile main source tree java files"> <mkdir dir = "${build.dir}"/> <javac destdir = "${build.dir}" source = "1.5" target = "1.5" debug = "true" deprecation = "false" optimize = "false" failonerror = "true"> <src path = "${src.dir}"/> <classpath refid = "master-classpath"/> </javac> </target> <target name = "deploy" depends = "build" description = "Deploy application"> <copy todir = "${deploy.path}/${name}" preservelastmodified = "true"> <fileset dir = "${web.dir}"> <include name = "**/*.*"/> </fileset> </copy> </target> <target name = "deploywar" depends = "build" description = "Deploy application as a WAR file"> <war destfile = "${name}.war" webxml = "${web.dir}/WEB-INF/web.xml"> <fileset dir = "${web.dir}"> <include name = "**/*.*"/> </fileset> </war> <copy todir = "${deploy.path}" preservelastmodified = "true"> <fileset dir = "."> <include name = "*.war"/> </fileset> </copy> </target> <target name = "clean" description = "Clean output directories"> <delete> <fileset dir = "${build.dir}"> <include name = "**/*.class"/> </fileset> </delete> </target> </project>
В этом примере —
-
Сначала мы объявляем путь к папке webapps в Tomcat в файле свойств сборки как переменную deploy.path .
-
Мы также объявляем исходную папку для java-файлов в переменной src.dir .
-
Затем мы объявляем исходную папку для веб-файлов в переменной web.dir . javadoc.dir — это папка для хранения документации java, а build.dir — это путь для хранения выходных файлов сборки.
-
Затем мы объявляем название веб-приложения, в нашем случае это факс .
-
Мы также определяем путь мастер-класса, который содержит файлы JAR, присутствующие в папке WEB-INF / lib проекта.
-
Мы также включаем файлы классов, присутствующие в build.dir, в путь мастер-класса.
-
Цель Javadoc создает Javadoc, необходимый для проекта, а цель использования используется для печати общих целей, присутствующих в файле сборки.
Сначала мы объявляем путь к папке webapps в Tomcat в файле свойств сборки как переменную deploy.path .
Мы также объявляем исходную папку для java-файлов в переменной src.dir .
Затем мы объявляем исходную папку для веб-файлов в переменной web.dir . javadoc.dir — это папка для хранения документации java, а build.dir — это путь для хранения выходных файлов сборки.
Затем мы объявляем название веб-приложения, в нашем случае это факс .
Мы также определяем путь мастер-класса, который содержит файлы JAR, присутствующие в папке WEB-INF / lib проекта.
Мы также включаем файлы классов, присутствующие в build.dir, в путь мастер-класса.
Цель Javadoc создает Javadoc, необходимый для проекта, а цель использования используется для печати общих целей, присутствующих в файле сборки.
В приведенном выше примере показаны две цели развертывания: deploy и deploywar.
Цель развертывания копирует файлы из веб-каталога в каталог развертывания, сохраняя отметку даты последнего изменения времени. Это полезно при развертывании на сервере, который поддерживает горячее развертывание.
Чистая цель очищает все ранее созданные файлы.
Цель deploywar создает файл war, а затем копирует файл war в каталог deploy сервера приложений.