Учебное пособие по Apache ANT: что такое инструмент сборки Ant? Пример

⚡ Умное резюме

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

  • 🔨 Основное определение: Ant — это аббревиатура от Another Neat Tool (Ещё один полезный инструмент), и он преобразует исходный код в исполняемое приложение прямо из командной строки.
  • 📄 Файл сборки: Каждая инструкция хранится в XML-файле, обычно называемом build.xml, для создания которого не требуется дополнительный язык программирования.
  • 🧱 Трехузловая структура: В файле сборки задачи всегда вложены внутрь целей, а цели — внутрь одного элемента проекта.
  • 🔗 Управление зависимостями: Атрибут depends определяет порядок выполнения задач, поэтому компиляция всегда выполняется перед запуском JAR-файла и перед развертыванием.
  • ⚙️ Настройка среды: Для установки требуется JDK, переменная ANT_HOME и добавление папки Ant bin в системный путь.
  • 🆚 Сравнение инструментов: Ant предоставляет свободу процедурного подхода, Maven обеспечивает соблюдение соглашений с помощью управления зависимостями, а Gradle объединяет оба подхода с помощью скриптовой сборки.
  • 🌍 Преимущество портативности: Сборка работает идентично на Windows и Linux везде, где это необходимо. Java Виртуальная машина доступна.

Учебное пособие по Apache ANT

Что такое инструмент сборки?

Инструмент сборки — это инструмент программирования, который используется для создания новой версии программы. Он автоматизирует создание исполняемого приложения из любого исходного кода.

Без инструмента сборки разработчику пришлось бы вручную компилировать каждый исходный файл, копировать ресурсы, запускать набор тестов и упаковывать результат при каждом изменении. Инструмент сборки записывает эти шаги один раз и повторяет их идентично на каждой машине.

Что такое 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

Установите и настройте Apache Ant на Windows

Шаг 2) Распакуйте файлы.
Распакуйте этот ZIP-файл в удобное место, например, в папку c:\folder, используя команду... WinZip, WinRAR, 7-Zipили аналогичный инструмент.

Установите и настройте Apache Ant на Windows

Шаг 3) Создайте переменную среды.
Создайте переменную среды для «ANT_HOME» и присвойте ей значение, равное расположению папки Ant.

  1. Щелкните правой кнопкой мыши по значку «Этот компьютер».
  2. Нажмите на свойства.

Установите и настройте Apache Ant на Windows

Шаг 4) Зайдите в настройки системы.
Нажмите «Дополнительные настройки системы».

Установите и настройте Apache Ant на Windows

Шаг 5) В свойствах системы
Нажмите на вкладку «Дополнительно».

Установите и настройте Apache Ant на Windows

Шаг 6) Найдите переменные среды.
Нажмите на кнопку «Переменные среды…».

Установите и настройте Apache Ant на Windows

Шаг 7) Создайте новую переменную.
Нажмите «Новый», чтобы создать новую пользовательскую переменную.

Установите и настройте Apache Ant на Windows

Шаг 8) Введите подробные сведения о переменной.
Введите данные новой пользовательской переменной.

  1. Введите имя переменной как ANT_HOME.
  2. Введите значение переменной в качестве папки, куда был распакован Ant, например, C:\apache-ant-1.10.17.
  3. Щелкните по кнопке «ОК».

Установите и настройте Apache Ant на Windows

Шаг 9) Переменная создана.
Щелкните по кнопке «ОК».

Установите и настройте Apache Ant на Windows

Шаг 10) Закройте экран.
Нажмите «ОК», чтобы закрыть экран.

Установите и настройте Apache Ant на Windows

💡 Совет: Параметр ANT_HOME должен указывать на саму папку установки, а не на папку bin внутри неё. Затем добавьте %ANT_HOME%\bin Добавьте это в переменную Path, чтобы команда Ant распознавалась из любой директории.

Вы можете проверить успешную установку Ant, нажав кнопку ty.ping Команда “ant -version” в командной строке.

Вы увидите следующий экран:

Установите и настройте Apache Ant на Windows

Пример 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 для автоматизации тестирования браузеров. Отчеты, создаваемые во время сборки, могут быть отображены с помощью ДжасперРепортс.

Часто задаваемые вопросы (FAQ)

Ant — это аббревиатура от Another Neat Tool (Ещё один полезный инструмент). Джеймс Дункан Дэвидсон создал его в июле 2000 года во время работы над сборкой Tomcat, и он был передан в дар Apache Software. Foundation.

Нет, но Ant по умолчанию ищет файл build.xml в текущем каталоге. Любое другое имя подойдет, если его передать с помощью параметра -f или -buildfile в командной строке.

Само по себе это невозможно. Apache Ivy — это сопутствующий проект, который добавляет разрешение зависимостей и может загружать артефакты из тех же репозиториев, что и Maven.

Папка bin отсутствует в переменной Path, или ANT_HOME указывает на неправильный каталог. Откройте новую командную строку после редактирования переменных, так как существующие окна сохраняют старые значения.

Да, для стандартных целей компиляции, jar-файлов и тестирования. Проверьте записи в classpath и атрибут includeantruntime, поскольку в сгенерированных файлах они часто отсутствуют, что приводит к появлению непонятных предупреждений.

Да, за сохранение наследия. Java системы, где существующую сборку невозможно дешево перенести. Новые проекты обычно начинаются с Maven или Gradle, которые инструменты искусственного интеллекта также обеспечивают более надежную поддержку.

Подведем итог этой публикации следующим образом: