Apache Ant
Apache Ant (Another Neat Tool) | |
Apache Ant Project | |
Тип | Билд-утилиты |
Разработчик | Apache Software Foundation |
Написана на | Java[1] |
ОС | Кроссплатформенное программное обеспечение |
Версия | 1.8.0 (8 февраля, 2010 г.) |
Лицензия | Apache 2.0 License |
Сайт | ant.apache.org |
Apache Ant (англ. ant — муравей и акроним — «Another Neat Tool») — java-утилита для автоматизации процесса сборки программного продукта.
Ant — платформонезависимый аналог UNIX-утилиты make (в качестве «Makefile» применяется «build.xml»).
Ant был создан в рамках проекта Jakarta, сегодня — самостоятельный проект первого уровня Apache Software Foundation.
Первая версия была разработана инженером Sun Microsystems Джеймсом Дэвидсоном (James Davidson), который нуждался в утилите подобной make, разрабатывая первую референтную реализацию J2EE.
Описание
В отличие от 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-команды |
отправка электронной почты | |
Xslt | наложение XSLT-преобразования |
Пример сценария
Данный сценарий определяет две цели - clean и build. Первая выполняет удаление временных файлов, вторая - компиляцию и создание JAR-архива. Цель build зависит от clean, поэтому при её запуске будет сначала выполнена очистка и только затем - задания собственно сборки. Build также выбрана в качестве цели по умолчанию. Это означает, что она будет выполнена при обработке данного сценария без явного указания цели.
<?xml version="1.0"?>
<project default="build">
<!-- Build application -->
<target name="build" depends="clean" description="Builds the application">
<!-- Creates directories -->
<mkdir dir="${build.classes}"/>
<!-- Compiles the source files -->
<javac srcdir="${java.dir}"
destdir="${build.classes}"
debug="false"
deprecation="true"
optimize="true" >
<classpath refid="classpath" />
</javac>
<!-- Copies the required files -->
<copy todir="${build.classes}">
<fileset dir="${java.dir}">
<include name="**/*.properties" />
<include name="**/*.gif" />
</fileset>
</copy>
<!-- Creates the JAR-File -->
<jar jarfile="${build.lib}/${name}.jar" manifest="${manifest}">
<fileset dir="${build.classes}"/>
</jar>
</target>
<!-- Cleans up -->
<target name="clean" description="Removes all temporary files">
<!-- Erases files -->
<delete dir="${build.dir}" />
<delete dir="${dist.base}" />
<delete dir="${defaultdist.dir}" />
<delete>
<fileset dir="." includes="**/*~" defaultexcludes="no"/>
</delete>
</target>
</project>
Примечания
См. также
- Apache Maven - более современный инструмент со схожими задачами
Ссылки
- Ant Homepage (англ.)
- Ant-Wiki (англ.)
- Мэтт Чепмен Apache Ant 101: Моментальная компоновка Java-программ (рус.) (html pdf zip). IBM developerWorks Россия (17 декабря 2003). Проверено 14 октября 2008.
- Разработка Flash-проектов с использованием Apache Ant (рус.)
- Antro Профайлер для build-скриптов
- Ant за 10 шагов. Краткое введение в ant c сайта OpenNET
- Большое пособие по Apache Ant
ca:Apache Ant da:Ant de:Apache Ant en:Apache Ant es:Apache Ant fr:Apache Ant it:Apache Ant ja:Apache Ant lt:Ant ml:അപ്പാച്ചെ ആന്റ് nl:Apache Ant pl:Apache Ant pt:Apache Ant sv:Apache Ant ta:அப்பாச்சி ஆன்ட் tr:Apache Ant uk:Apache Ant zh:Apache Ant
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....