Навчальний посібник Apache ANT: що таке Ant Build Tool? приклад

⚡ Розумний підсумок

Apache ANT – це Java інструмент збірки на основі XML, який автоматизує компіляцію, тестування, пакування та розгортання за допомогою 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 програми з повною переносимістю pure Java код. Це дозволяє розробникам застосовувати гнучкі принципи та розробку на основі тестування для автоматизації повторюваних завдань розробки, таких як створення документації. Ant – це абревіатура від Another Neat Tool (Ще один акуратний інструмент).

Апач Мураха

Як показано на діаграмі, Ant зчитує файл збірки, визначає порядок цілей у ньому, а потім запускає окремі завдання, які компілюють, копіюють, тестують та пакують програму.

Для чого використовується інструмент Apache Ant Build?

Ось важливі переваги використання інструменту для створення:

  • Інструмент збірки дозволяє автоматизувати певні повторювані завдання, такі як компіляція вихідного коду, проведення тестів програмного забезпечення та створення файлів для розгортання програмного забезпечення.
  • Інструменти збирання здебільшого працюють без графічного інтерфейсу користувача.
  • Це допомагає вам конвертувати вихідний код у виконуваний код.
  • Він пропонує опцію перекомпіляції файлу лише за необхідності.
  • Це дозволяє компілювати велику кількість файлів за відносно короткий час.
  • Два широко популярних інструменти збирання, які використовує Java розробники - Apache Maven і Ant.

Історія 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. Натисніть кнопку “OK”.

Встановіть і налаштуйте Apache Ant Windows

Крок 9) Змінну створено.
Натисніть кнопку “OK”.

Встановіть і налаштуйте Apache Ant Windows

Крок 10) Закрийте екран.
Натисніть «ОК», щоб закрити екран.

Встановіть і налаштуйте Apache Ant Windows

💡 Порада: ANT_HOME має вказувати на саму папку встановлення, а не на папку bin усередині неї. Потім додайте %ANT_HOME%\bin до змінної Path, щоб команда ant розпізнавалася з будь-якого каталогу.

Ви можете перевірити успішне встановлення Ant за допомогою typing команда «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.
  • прогін 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іон: Descriptіон мішені.
  • Залежить: Від якої цілі залежить ця поточна ціль.
  • Якщо: Виконує ціль, лише якщо для цільової властивості встановлено значення.
  • Хіба що: Виконує ціль, лише якщо значення властивості не встановлено.

Завдання

Завдання — це фрагмент коду, який можна виконати. Завдання мають кілька аргументів або атрибутів.

Загальний шаблон методу написання завдання такий:

<name attribute1="value" attribute2="value2"…/>

Ви можете використовувати вбудоване завдання або створити власне. У таблиці нижче перелічені завдання, які з’являються майже в кожному Java файл збірки.

Завдання Мета Типові атрибути
нудьгувати Вивести повідомлення в консоль повідомлення
mkdir Створити каталог реж
видаляти Видалити файли або каталоги каталог, включаючи порожні каталоги
явак Компіляція Java вихідні файли srcdir, destdir, includeantruntime
банку Упакувати класи в jar-архів destfile, baseddir
скопіювати Копіювання файлів між розташуваннями файл, каталог
джуніт Запуск модульних тестів 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
Найкраще підходить для Застарілі проекти та висококастомні збірки Standard Java проектів Великий багатомодульний та Android проектів

Ant залишається прагматичним вибором, коли збірка не відповідає стандартному макету або коли існуючий проект вже залежить від рукописних цілей.

Найкращі практики використання Apache Ant

Ось деякі найкращі практики використання Apache Ant.

  • Ви повинні автоматизувати нумерацію збірок за допомогою файлів властивостей.
  • Реалізуйте налаштовувану збірку за допомогою файлів властивостей default та build. Ці файли дозволяють зберігати властивості, що визначають дані для процесу збірки, такі як версія компілятора та налаштування оптимізації.
  • Ви можете повторно використовувати попередньо зібрані бібліотеки за допомогою файлів властивостей бібліотеки.
  • Надайте кожній цілі атрибут опису, щоб 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 для автоматизації тестування браузера. Звіти, створені під час збірки, можна відображати за допомогою JasperReports.

Поширені запитання

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, які інструменти штучного інтелекту також надійніше створюють каркаси.

Підсумуйте цей пост за допомогою: