Автор (ы) | Джеймс Дункан Дэвидсон |
---|---|
Разработчик (и) | Apache Software Foundation |
Первоначальный выпуск | 19 июля 2000 г.; 20 лет назад (2000-07-19) |
Стабильный выпуск | 1.10.8 / 13 мая 2020 г.; 5 месяцев назад (2020-05-13) |
Репозиторий | Ant Repository |
Написано на | Java |
Платформа | Java SE |
Тип | Инструмент сборки |
Лицензия | Apache License 2.0 |
Веб-сайт | ant.apache.org |
Apache Ant - это программный инструмент для автоматизации процессов сборки программного обеспечения, происходящих из проект Apache Tomcat в начале 2000 г. в качестве замены инструмента сборки Make для Unix. Он похож на Make, но реализован с использованием языка Java и требует платформы Java. В отличие от Make, который использует формат Makefile, Ant использует XML для описания процесса сборки кода и его зависимостей.
Выпущенный по лицензии Apache Apache Software Foundation, Ant является проектом с открытым исходным кодом.
Ant («Другой аккуратный инструмент») был разработан Джеймсом Дунканом Дэвидсоном во время подготовки справки JSP и <83 Sun Microsystems.>Механизм сервлета, позже Apache Tomcat, для выпуска как с открытым исходным кодом. Для его построения на платформе Solaris использовалась проприетарная версия Make, но в мире с открытым исходным кодом не было способа контролировать, какая платформа использовалась для сборки Tomcat; поэтому Ant был создан как простой платформенно-независимый инструмент для сборки Tomcat из директив в XML-файле сборки. Ant (версия 1.1) был официально выпущен как отдельный продукт 19 июля 2000 года.
Было сделано несколько предложений по AntEater версии 2, таких как AntEater Джеймсом Дунканом Дэвидсоном, Myrmidon Питером Дональдом и Мутант Конора МакНейла, ни один из которых не получил широкого признания в сообществе разработчиков.
В свое время (2002 г.) Ant был инструментом сборки, используемым в большинстве проектов разработки Java. Например, большинство разработчиков Java с открытым исходным кодом включили файлы build.xml
в свой дистрибутив. Поскольку Ant упростил интеграцию тестов JUnit с процессом сборки, Ant упростил желающим разработчикам внедрить разработку через тестирование и даже экстремальное программирование.
WOProject-Ant - лишь один из многих примеров расширения задач, написанных для Ant. Эти расширения устанавливаются путем копирования их файлов .jar
в каталог ant lib
. Как только это будет сделано, эти расширения задач можно будет вызывать непосредственно в типичном файле build.xml
. Расширения WOProject позволяют разработчикам WebObjects использовать ant при создании своих фреймворков и приложений вместо использования пакета Apple Xcode.
Antcontrib
предоставляет набор задач, таких как условные операторы и операции над свойствами, а также другие полезные задачи.
Ant-contrib.unkrig.de
реализует задачи и типы для работы в сети, Пользовательские интерфейсы Swing, обработка JSON и прочее.
Существуют другие расширения задач для Perforce, .NET Framework, EJB и манипуляций с файловой системой.
Ниже приведен пример файла build.xml
для простого Java-приложения «Hello, world». Он определяет четыре цели - clean
, clobber
, compile
и jar
, каждая из которых имеет связанное описание. Целевой объект jar
перечисляет цель compile
как зависимость. Это сообщает Ant, что прежде чем он сможет запустить цель jar
, он должен сначала завершить цель compile
.
Внутри каждой цели указаны действия, которые Ant должен предпринять для создания этой цели; они выполняются с помощью встроенных задач. Например, для создания целевой компиляции Ant должен сначала создать каталог с именем
classes
(что Ant будет делать только в том случае, если он еще не существует), а затем вызвать компилятор Java. Таким образом, используются следующие задачи: mkdir
и javac
. Они выполняют ту же задачу, что и одноименные утилиты командной строки.
Другая задача, использованная в этом примере, называется jar
:
Эта задача Ant имеет то же имя, что и обычная утилита командной строки Java, JAR, но на самом деле является вызовом встроенной программы Ant. в поддержке файлов JAR / ZIP. Эта деталь не имеет отношения к большинству конечных пользователей, которые просто получают JAR, который они хотели, с файлами, которые они просили.
Многие задачи Ant делегируют свою работу внешним программам, собственным или Java. Они используют собственные задачи Ant
и
для настройки командных строк и обработки всех деталей сопоставления информации в файле сборки с аргументами программы и интерпретации возвращаемого значения. Пользователи могут видеть, какие задачи делают это (например,
,
,
,
), пытаясь выполнить задачу в системе без базовой программы в пути или без установленного полного комплекта Java Development Kit (JDK).
Одной из основных целей Ant было сделать его более портативным, чем Make. В Make действия, необходимые для создания цели, указываются как зависящие от платформы команды оболочки, тогда как Ant предоставляет большое количество встроенных функций, которые предназначены для одинакового поведения на всех платформах. Например, в примере файла build.xml
выше чистая цель удаляет каталог classes
и все, что в нем. В Makefile это обычно делается с помощью команды:
rm -rf classes /
rm
- это специфичная для Unix команда, недоступная в некоторых других средах. Microsoft Windows, например, будет использовать:
rmdir / S / Q classes
В файле сборки Ant та же цель будет достигнута с помощью встроенной команды :
Кроме того, Ant не делает различий между прямой и обратной косой чертой для каталогов и точкой с запятой или двоеточием для разделителей путей. Он преобразует каждый в символ, соответствующий платформе, на которой он выполняется.
,
и
- используйте значения по умолчанию для параметров, которые не соответствуют более поздним версиям задач. Изменение этих значений по умолчанию нарушит существующие сценарии Ant.$ {unassigned.property }
).
свойство не может быть повторно оценено для подзначения, которое могут быть частью итерации. (Некоторые сторонние расширения упрощают обходной путь; наборы задач управления потоком AntXtras действительно предусматривают переопределение курсора для циклов.)Существуют сторонние расширения Ant (называемые antlibs), которые обеспечивают большую часть недостающих функций. Кроме того, интегрированная среда разработки Eclipse (IDE) может создавать и выполнять сценарии Ant, а среда IDE NetBeans использует Ant для своей внутренней системы сборки. Поскольку обе эти IDE являются очень популярными платформами разработки, они могут значительно упростить использование Ant. (В качестве бонуса сценарии Ant, сгенерированные NetBeans, могут использоваться вне этой IDE как отдельные сценарии.)
В Викиучебнике есть книга по теме: Apache Ant |