Apache Ant

редактировать
Apache Ant
Apache-Ant- logo.svg
Автор (ы) Джеймс Дункан Дэвидсон
Разработчик (и) 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 является проектом с открытым исходным кодом.

Содержание
  • 1 История
  • 2 Расширения
  • 3 Пример
  • 4 Переносимость
  • 5 Ограничения
  • 6 См. Также
  • 7 Ссылки
  • 8 Дополнительная литература
  • 9 Внешние ссылки
История

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, написанные в XML, могут быть сложными и подробными, поскольку они иерархичны, частично упорядочены и повсеместно связаны между собой. Эта сложность может быть препятствием для обучения. Файлы сборки больших или сложных проектов могут стать неуправляемо большими. Хороший дизайн и модульность файлов сборки могут улучшить читаемость, но не обязательно уменьшить размер. Другие инструменты сборки, такие как Gradle или Maven, используют более сжатые сценарии за счет универсальности и гибкости.
  • Многие из старых задач - основные, которые используются каждый день, например , и - используйте значения по умолчанию для параметров, которые не соответствуют более поздним версиям задач. Изменение этих значений по умолчанию нарушит существующие сценарии Ant.
  • При раскрытии свойств в строке или текстовом элементе неопределенные свойства не выдаются как ошибка, а остаются нерасширенной ссылкой (например, $ {unassigned.property }).
  • Ant имеет ограниченные правила обработки ошибок.
  • Ленивая оценка свойства не поддерживается. Например, при работе в цикле Antcontrib свойство не может быть повторно оценено для подзначения, которое могут быть частью итерации. (Некоторые сторонние расширения упрощают обходной путь; наборы задач управления потоком AntXtras действительно предусматривают переопределение курсора для циклов.)
  • В make-файлах любое правило для создания одного типа файла из другого может быть написанным в файле makefile. Например, можно преобразовать документ в какой-либо другой формат, используя правила для выполнения другого инструмента. Создание аналогичной задачи в Ant более сложное: отдельная задача должна быть написана на Java и включена в Ant файл сборки для обработки того же типа функционала у. Однако такое разделение может улучшить читаемость сценария Ant, скрывая некоторые детали того, как задача выполняется на разных платформах.

Существуют сторонние расширения Ant (называемые antlibs), которые обеспечивают большую часть недостающих функций. Кроме того, интегрированная среда разработки Eclipse (IDE) может создавать и выполнять сценарии Ant, а среда IDE NetBeans использует Ant для своей внутренней системы сборки. Поскольку обе эти IDE являются очень популярными платформами разработки, они могут значительно упростить использование Ant. (В качестве бонуса сценарии Ant, сгенерированные NetBeans, могут использоваться вне этой IDE как отдельные сценарии.)

См. Также
Ссылки
Дополнительная литература
Внешние ссылки
В Викиучебнике есть книга по теме: Apache Ant
Последняя правка сделана 2021-06-11 20:10:05
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте