- Apache Ant
-
Apache Ant
(Another Neat Tool)Тип Билд-утилиты
Разработчик Написана на Операционная система Последняя версия 1.8.3 (29 февраля, 2012 г.)
Лицензия Сайт Apache Ant (англ. ant — муравей и акроним — «Another Neat Tool») — утилита для автоматизации процесса сборки программного продукта. Является платформонезависимым аналогом утилиты make (в качестве «Makefile» применяется «build.xml»).
Ant был создан в рамках проекта Jakarta, сегодня — самостоятельный проект первого уровня Apache Software Foundation.
Первая версия была разработана инженером Sun Microsystems Джеймсом Дэвидсоном (James Davidson (англ.)русск.), который нуждался в утилите, подобной make, разрабатывая первую референтную реализацию J2EE.
Ant, в отличие от другого сборщика проектов Apache Maven, обеспечивает императивную, а не декларативную сборку проекта.
Содержание
Описание
В отличие от make, утилита Ant полностью независима от платформы, требуется лишь наличие на применяемой системе установленной рабочей среды Java — JRE. Отказ от использования команд операционной системы и формат XML обеспечивают переносимость сценариев.
Управление процессом сборки происходит посредством XML-сценария, также называемого Build-файлом. В первую очередь этот файл содержит определение проекта, состоящего из отдельных целей (Targets). Цели сравнимы с процедурами в языках программирования и содержат вызовы команд-заданий (Tasks). Каждое задание представляет собой неделимую, атомарную команду, выполняющую некоторое элементарное действие.
Между целями могут быть определены зависимости — каждая цель выполняется только после того, как выполнены все цели, от которых она зависит (если они уже были выполнены ранее, повторного выполнения не производится).
Типичными примерами целей являются clean (удаление промежуточных файлов), compile (компиляция всех классов), deploy (развёртывание приложения на сервере). Конкретный набор целей и их взаимосвязи зависят от специфики проекта.
Ant позволяет определять собственные типы заданий путём создания Java-классов, реализующих определённые интерфейсы.
Часто применяемые задания (Tasks)
Ниже приведён неполный перечень заданий с кратким описанием. Актуальная версия программы (1.8.0 rc1) содержит около 150 типов заданий.
Код Действие Javac компиляция Java-кода Copy копирование файлов Delete удаление файлов и директорий Move перемещение файлов и директорий Replace замещение фрагментов текста в файлах JUnit автоматический запуск юнит-тестов Exec выполнение внешней команды Zip создание архива в формате Zip CVS выполнение CVS-команды Mail отправка электронной почты Xslt наложение XSLT-преобразования Пример сценария
Данный сценарий определяет две цели — clean и build. Первая выполняет удаление временных файлов, вторая — компиляцию и создание JAR-архива. Цель build зависит от clean, поэтому при её запуске будет сначала выполнена очистка и только затем — задания собственно сборки. Build также выбрана в качестве цели по умолчанию. Это означает, что она будет выполнена при обработке данного сценария без явного указания цели.
<?xml version="1.0"?> <project default="build" basedir="."> <property name="name" value="AntBuildJar"/> <property name="src.dir" location="${basedir}/src"/> <property name="build" location="${basedir}/build"/> <property name="build.classes" location="${build}/classes"/> <path id="libs.dir"> <fileset dir="lib" includes="**/*.jar"/> </path> <!-- Сборка приложения --> <target name="build" depends="clean" description="Builds the application"> <!-- Создание директорий --> <mkdir dir="${build.classes}"/> <!-- Компиляция исходных файлов --> <javac srcdir="${src.dir}" destdir="${build.classes}" debug="false" deprecation="true" optimize="true" > <classpath refid="libs.dir"/> </javac> <!-- Копирование необходимых файлов --> <copy todir="${build.classes}"> <fileset dir="${src.dir}" includes="**/*.*" excludes="**/*.java"/> </copy> <!-- Создание JAR-файла --> <jar jarfile="${build}/${name}.jar"> <fileset dir="${build.classes}"/> </jar> </target> <!-- Очистка --> <target name="clean" description="Removes all temporary files"> <!-- Удаление файлов --> <delete dir="${build.classes}"/> </target> </project>
Примечания
См. также
- Apache Maven — более современный инструмент со схожими задачами
- Gradle
Ссылки
- Официальный сайт Ant (англ.)
- Ant-Wiki (англ.)
- Мэтт Чепмен Apache Ant 101: Моментальная компоновка Java-программ (рус.) (html pdf zip). IBM developerWorks Россия (17 декабря 2003). Архивировано из первоисточника 27 августа 2011. Проверено 14 октября 2008.
- Разработка Flash-проектов с использованием Apache Ant (рус.)
- Antro Профайлер для build-скриптов
- Ant за 10 шагов. Краткое введение в ant c сайта OpenNET
- Большое пособие по Apache Ant
Apache Software Foundation Проекты верхнего уровня ActiveMQ • Ant • Apache HTTP Server • APR • Beehive • Cassandra • Cayenne • Camel • Commons • Cocoon • CouchDB • DB • Directory • Excalibur • Forrest • Geronimo • Gump • Hadoop • Harmony • HBase • HiveMind • HttpComponents • iBATIS • Jackrabbit • James • JMeter • Lenya • Maven • Mina • mod perl • MyFaces • Nutch • OFBiz • OpenOffice.org • POI • Portals • Santuario • ServiceMix • Shale • Shiro • SpamAssassin • Struts • Subversion • Tapestry • Tcl • Tomcat • Turbine • Velocity • WebWork 2 • Wicket • Xalan • Xerces • XMLBeans Подпроекты Apache Commons BCEL • BSF • JCS Apache Lucene Lucene Java • Lucene4c • Lucy• Solr Apache DB Derby • Torque • DdlUtils • OJB • JDO Apache Web Services Axis • Axis2 • CXF • WS-Commons • EWS • JaxMe • jUDDI • Kandula • Mirae • Muse • Pubscribe • Sandesha • Scout • SOAP • Synapse • TSIK • Tuscany • Woden • WSIF • WSRF • WSS4J • XML-RPC Другие проекты Batik • FOP •Log4j Развивающиеся проекты (Incubator) XAP • River • OpenEJB • OpenJPA • Graffito • Tuscany • Log4Net • Roller • Felix • Abdera • CeltiXfire • FtpServer • Heraldry • Ivy • JuiCE • Kabuki • Lokahi • Lucene.Net • mod_ftp • NMaven • Ode • stdcxx • Woden • WSRP4J • Yoko • WADI • Qpid • stdcxx • TripleSoup • UIMA• Adobe Flex Списанные проекты (Attic) AxKit • Cactus • ECS • Jakarta • ORO • Regexp • Slide • Taglibs Лицензия: Лицензия Apache • Сайт: apache.org Системы автоматизации сборки Системы автоматизации сборки Make · Premake · CMake · SCons · Apache Ant · Apache Maven · NAnt · Buildout · MSBuild · Waf · Rake · Autotools Категории:- Программное обеспечение по алфавиту
- Свободные инструменты для разработки программного обеспечения
- Проекты Apache
- Автоматизация сборки
- Программное обеспечение для разработки под Android
Wikimedia Foundation. 2010.