Учебное пособие по Apache ANT: что такое инструмент сборки Ant? Пример
⚡ Умное резюме
Apache ANT — это Java Инструмент сборки, автоматизирующий компиляцию, тестирование, упаковку и развертывание с помощью XML-файла сборки. В этой статье дается определение инструмента. tracрассказывает свою историю, охватывает Windows в процессе установки объясняется структура проекта и проводится сравнение с Maven. Gradle.

Что такое инструмент сборки?
Инструмент сборки — это инструмент программирования, который используется для создания новой версии программы. Он автоматизирует создание исполняемого приложения из любого исходного кода.
Без инструмента сборки разработчику пришлось бы вручную компилировать каждый исходный файл, копировать ресурсы, запускать набор тестов и упаковывать результат при каждом изменении. Инструмент сборки записывает эти шаги один раз и повторяет их идентично на каждой машине.
Что такое Apache Ant?
Апачский муравей - это Java-инструмент командной строки для сборки Java приложения с полной переносимостью чистого Java код. Он позволяет разработчикам применять принципы гибкой разработки и разработки через тестирование для автоматизации повторяющихся задач разработки, таких как генерация документации. Ant — это аббревиатура от Another Neat Tool (Еще один полезный инструмент).
Как показано на диаграмме, Ant считывает файл сборки, определяет порядок целей внутри него, а затем запускает отдельные задачи, которые компилируют, копируют, тестируют и упаковывают приложение.
Для чего используется инструмент Apache Ant Build?
Вот важные преимущества использования инструмента сборки:
- Инструмент сборки позволяет автоматизировать определенные повторяющиеся задачи, такие как компиляция исходного кода, запуск тестов программного обеспечения и создание файлов для развертывания программного обеспечения.
- Инструменты сборки в основном работают без графического пользовательского интерфейса.
- Это помогает преобразовать исходный код в исполняемый код.
- Предоставляется возможность перекомпиляции файла только в случае необходимости.
- Это позволяет компилировать большое количество файлов за относительно короткое время.
- Два широко популярных инструмента сборки, используемых Java разработчики — Apache. Специалист и Ант.
История Apache Ant
Теперь мы узнаем об истории инструмента сборки Apache Ant.
Вот важные исторические вехи, полученные с помощью инструмента Apache Ant:
- Джеймс Дункан Дэвидсон создал компанию Ant в июле 2000 года.
- Изначально он использовался для сборки Tomcat и входил в состав дистрибутива Tomcat.
- В мае 2014 года была выпущена версия Apache Ant 1.9.4, обладающая множеством расширенных функций.
- Ветка 1.10.x была запущена в 2017 году и до сих пор активно поддерживается.
- Версия 1.10.17 была выпущена 10 апреля 2026 года и требует минимального количества Java 8 время выполнения.
Особенности Apache Ant
Вот основные особенности Apache Ant:
- Это проект с открытым исходным кодом.
- Это позволяет запускать сборки на обоих устройствах. Windows а также системы UNIX или Linux.
- Вам потребуется всего лишь JVM, поскольку он работает везде, где доступна JVM.
- Он предлагает широкий спектр предопределенных задач.
- Это помогает копировать файлы из одного места в другое.
- Он предоставляет интерфейс для разработки пользовательских задач.
- Это позволяет запускать сборки из командной строки, что легко интегрируется с бесплатные и коммерческие IDE.
- Это позволяет развернуть бинарные файлы на тестовом сервере.
- Она предлагает расширяемую архитектуру.
- Это обеспечивает обратную совместимость между различными версиями.
Как установить и настроить Apache Ant на Windows
Теперь мы изучим процесс установки Apache Ant на Windows.
Мы предполагаем, что вы уже скачали и установили Java Комплект разработки (JDK) на вашем компьютере. Убедитесь, что переменная среды JAVA_HOME установлена на папку, где установлен ваш JDK. Выполните следующие шаги для установки Ant:
Шаг 1) Загрузите двоичные файлы.
Скачайте бинарники с https://ant.apache.org/bindownload.cgi
Шаг 2) Распакуйте файлы.
Распакуйте этот ZIP-файл в удобное место, например, в папку c:\folder, используя команду... WinZip, WinRAR, 7-Zipили аналогичный инструмент.
Шаг 3) Создайте переменную среды.
Создайте переменную среды для «ANT_HOME» и присвойте ей значение, равное расположению папки Ant.
- Щелкните правой кнопкой мыши по значку «Этот компьютер».
- Нажмите на свойства.
Шаг 4) Зайдите в настройки системы.
Нажмите «Дополнительные настройки системы».
Шаг 5) В свойствах системы
Нажмите на вкладку «Дополнительно».
Шаг 6) Найдите переменные среды.
Нажмите на кнопку «Переменные среды…».
Шаг 7) Создайте новую переменную.
Нажмите «Новый», чтобы создать новую пользовательскую переменную.
Шаг 8) Введите подробные сведения о переменной.
Введите данные новой пользовательской переменной.
- Введите имя переменной как ANT_HOME.
- Введите значение переменной в качестве папки, куда был распакован Ant, например, C:\apache-ant-1.10.17.
- Щелкните по кнопке «ОК».
Шаг 9) Переменная создана.
Щелкните по кнопке «ОК».
Шаг 10) Закройте экран.
Нажмите «ОК», чтобы закрыть экран.
💡 Совет: Параметр ANT_HOME должен указывать на саму папку установки, а не на папку bin внутри неё. Затем добавьте %ANT_HOME%\bin Добавьте это в переменную Path, чтобы команда Ant распознавалась из любой директории.
Вы можете проверить успешную установку Ant, нажав кнопку ty.ping Команда “ant -version” в командной строке.
Вы увидите следующий экран:
Пример Apache ANT
Приведённый ниже файл сборки определяет единственную цель с именем hello, которая выводит сообщение. Элемент project объявляет имя и цель по умолчанию, чтобы Ant знал, что запускать, если цель не указана в командной строке.
<?xml version="1.0"?> <project name="HelloWorld" default="hello" basedir="."> <target name="hello"> <echo>Hello, World</echo> </target> </project>
Сохраните этот файл как “build.xml”, затем выполните следующие два шага:
- Откройте командную строку и перейдите в каталог, содержащий файл build.xml.
- Run
ant hello, или простоantПоскольку hello объявлен как целевой объект по умолчанию. Чтобы использовать другое имя файла, выполните команду:ant -f mybuild.xml hello.
Выход:
Buildfile: C:\projects\demo\build.xml
hello:
[echo] Hello, World
BUILD SUCCESSFUL
Total time: 0 seconds
Структура проекта АНТ
Структура проекта АНТ
Как показано на структурной схеме, каждая сборка будет содержать три узла:
- Проект
- Target
- Сложность задачи
Проект
Все внутри файла сборки в Apache ANT находится в проекте.
Атрибуты:
- Имя: Название проекта.
- Базовый директор: Это каталог, из которого будут вычисляться все пути. Это можно изменить, используя свойство «basedir».
- По умолчанию: Помогает определить целевую платформу по умолчанию для этого проекта. Если целевая платформа не указана, Ant выполнит целевую платформу по умолчанию.
Target
Цель — это набор задач, определенных для достижения конкретного состояния в процессе сборки.
Атрибуты:
- Имя: Название цели (обязательно).
- Описание: Descriptион мишени.
- Зависит от: От какой цели зависит данная текущая цель.
- В случае, если: Выполняет целевой процесс только в том случае, если для целевого свойства задано значение.
- если: Выполняет целевой запрос только в том случае, если значение свойства не задано.
Задач
Задача — это фрагмент кода, который может быть выполнен. Задачи имеют несколько аргументов или атрибутов.
Общий шаблон написания задачи выглядит следующим образом:
<name attribute1="value" attribute2="value2"…/>
Вы можете использовать встроенную задачу или создать свою собственную. В таблице ниже перечислены задачи, которые встречаются почти в каждом приложении. Java файл сборки.
| Сложность задачи | Цель | Типичные характеристики |
|---|---|---|
| эхо | Вывести сообщение в консоль | сообщение |
| MkDir | Создать каталог | директория |
| удалять | Удалить файлы или каталоги | dir, includeemptydirs |
| Javac | Компилировать Java исходные файлы | исходный каталог, целевой каталог, includeantruntime |
| банка | Упакуйте классы в JAR-архив. | destfile, basedir |
| копия | Копирование файлов между местоположениями | файл, директория |
| Junit | Запуск модульных тестов | haltonfailure, printsummary |
Полный пример файла build.xml с несколькими вариантами. Targets
Реалистичный файл сборки объединяет несколько целей в цепочку. Атрибут depends гарантирует порядок выполнения, поэтому Ant очищает выходную папку, компилирует исходный код и только после этого собирает JAR-файл.
<?xml version="1.0"?> <project name="DemoApp" default="jar" basedir="."> <!-- reusable values --> <property name="src.dir" value="src"/> <property name="build.dir" value="build"/> <target name="clean" description="Remove previous output"> <delete dir="${build.dir}"/> </target> <target name="compile" depends="clean" description="Compile sources"> <mkdir dir="${build.dir}/classes"/> <javac srcdir="${src.dir}" destdir="${build.dir}/classes" includeantruntime="false"/> </target> <target name="jar" depends="compile" description="Package the jar"> <mkdir dir="${build.dir}/jar"/> <jar destfile="${build.dir}/jar/DemoApp.jar" basedir="${build.dir}/classes"> <manifest> <attribute name="Main-Class" value="com.guru99.Main"/> </manifest> </jar> </target> </project>
Выход:
Buildfile: C:\projects\DemoApp\build.xml
clean:
[delete] Deleting directory C:\projects\DemoApp\build
compile:
[mkdir] Created dir: C:\projects\DemoApp\build\classes
[javac] Compiling 3 source files to C:\projects\DemoApp\build\classes
jar:
[mkdir] Created dir: C:\projects\DemoApp\build\jar
[jar] Building jar: C:\projects\DemoApp\build\jar\DemoApp.jar
BUILD SUCCESSFUL
Total time: 1 second
Apache Ant против Maven против Gradle
В разработке доминируют три инструмента сборки. Java экосистема, и каждая из них занимает разную позицию в отношении того, насколько жесткую структуру следует навязывать.
| Параметр | Апачский муравей | Apache Maven | Gradle |
|---|---|---|---|
| Формат скрипта сборки | XML | XML | Groovy или Kotlin DSL |
| Подход | Процедурный подход, вы определяете каждый шаг. | Декларативный подход, соглашения вместо конфигурации | Декларативный подход с расширениями на основе скриптов. |
| Управление зависимостями | Не встроенная функция, добавлена через Apache Ivy. | Встроено с использованием центрального репозитория. | Встроенная функция, совместимая с Maven. |
| Структура проекта | Полностью бесплатный | Фиксированная стандартная компоновка | Основано на соглашениях, но может быть переопределено. |
| Дополнительные сборки | Ограниченный | Ограниченный | Да, с кэшем сборки. |
| Кривая обучения | Низкий уровень сложности для пользователей XML | Средняя | Более крутой склон, требуется DSL. |
| лучше всего подходит для | Проекты, созданные на основе устаревших систем, и проекты, разработанные с учетом индивидуальных потребностей. | Стандарт Java проекты | Крупные многомодульные и Android проекты |
Ant остается прагматичным выбором, когда сборка не соответствует стандартной структуре или когда существующий проект уже зависит от целей, написанных вручную.
лучшие практики использования Apache Ant
Вот несколько рекомендаций по использованию Apache Ant.
- Вам следует автоматизировать нумерацию сборок с помощью файлов свойств.
- Реализуйте настраиваемую сборку с помощью файлов свойств по умолчанию и свойств сборки. Эти файлы позволяют хранить свойства, определяющие данные для процесса сборки, такие как версия компилятора и параметры оптимизации.
- Вы можете повторно использовать готовые библиотеки, используя файлы свойств библиотеки.
- Присвойте каждому целевому объекту атрибут описания, чтобы
ant -projecthelpПредставляет собой полезную сводку по сборке. - Очищайте целевой каталог отдельно и никогда не удаляйте каталог, в котором также находятся исходные файлы.
Преимущества использования Apache Ant
Вот преимущества использования Apache Ant:
- Ant является платформенно-независимым, поэтому он помогает управлять свойствами, зависящими от платформы, такими как разделители файлов.
- Ant позволяет выполнять задачи, специфичные для конкретной платформы, например, изменять время изменения файла с помощью команды 'touch'.
- Скрипты Ant пишутся с использованием простого языка. XMLТаким образом, если вы уже знакомы с XML, вы сможете быстро освоить Ant.
- Ant предлагает большой список предопределенных задач.
- Он предоставляет интерфейс для разработчиков.ping Индивидуальные задачи.
- Ant можно легко запустить из командной строки, что позволяет интегрировать его с бесплатными и коммерческими IDE.
- Для работы требуется только JVM, поэтому игра запускается везде, где доступна JVM.
- Apache Ant — это библиотека с открытым исходным кодом, которая позволяет пользователям получать доступ к исходному коду и воспроизводить его.
- Apache Ant — это кроссплатформенный инструмент, позволяющий управлять... Java путь к классам и структура каталогов файлов доступным способом.
- Apache Ant легко расширяется с помощью Java и другие языки программирования.
- Apache Ant предоставляет встроенную поддержку для разработки на J2EE, например, компиляцию и упаковку EJB.
- Его можно использовать как для небольшого личного проекта, так и для крупного программного проекта или веб-сайта.
Ant часто используется в паре с инструментом запуска тестов и сервером непрерывной интеграции. См. JUnit для тестового слоя, Jenkins для запланированных сборок, и использование Apache Ant с Selenium для автоматизации тестирования браузеров. Отчеты, создаваемые во время сборки, могут быть отображены с помощью ДжасперРепортс.













