Jump to content

Апач Муравей

Апач Муравей
Оригинальный автор(ы) Джеймс Дункан Дэвидсон
Разработчик(и) Фонд программного обеспечения Apache
Первоначальный выпуск 19 июля 2000 г .; 24 года назад ( 19 июля 2000 г. )
Стабильная версия
1.10.14 / 20 августа 2023 г .; 11 месяцев назад ( 20.08.2023 ) [1]
Репозиторий Муравьиный репозиторий
Написано в Ява
Платформа Ява SE
Тип Инструмент сборки
Лицензия Лицензия Апач 2.0
Веб-сайт на .apache .org  Edit this on Wikidata

Apache Ant — это программный инструмент для сборки программного обеспечения для приложений Java. автоматизации процессов [2] который возник из проекта Apache Tomcat в начале 2000 года как замена инструменту сборки Make в Unix . [3] Он похож на Make, но реализован с использованием языка Java и требует платформы Java. В отличие от Make, который использует формат Makefile , Ant использует XML для описания процесса сборки кода и его зависимостей. [4]

Выпущенный лицензии Apache по Apache Software Foundation , Ant представляет собой проект с открытым исходным кодом .

Муравей («Еще один аккуратный инструмент») [5] был задуман Джеймсом Дунканом Дэвидсоном при подготовке Sun Microsystems , эталонного механизма JSP и сервлетов позже Apache Tomcat , к выпуску с открытым исходным кодом . , но в использовалась проприетарная версия Make Для сборки Tomcat на платформе Solaris мире открытого исходного кода не было возможности контролировать, какая платформа использовалась для сборки Tomcat; поэтому Ant был создан как простой , независимый от платформы инструмент для сборки Tomcat из директив в XML-файле сборки. Ant (версия 1.1) был официально выпущен как отдельный продукт 19 июля 2000 года.

Было сделано несколько предложений по версии Ant 2, например AntEater Джеймса Дункана Дэвидсона, Myrmidon Питера Дональда. [6] и Mutant от Конора МакНила, ни один из которых не смог найти широкого признания среди сообщества разработчиков. [7]

Одно время (2002 г.) Ant был инструментом сборки, используемым в большинстве проектов разработки Java. [8] Например, большинство разработчиков Java с открытым исходным кодом включали build.xml файлы с их распространением. [ нужна ссылка ] Поскольку Ant упростил интеграцию тестов JUnit с процессом сборки, Ant позволил разработчикам использовать разработку через тестирование и экстремальное программирование .

В 2004 году Apache создал новый инструмент аналогичной цели под названием Maven .

Gradle , похожее программное обеспечение, было создано в 2008 году и, напротив, использует код Groovy (и некоторых других языков) вместо XML.

Расширения

[ редактировать ]

WOProject-Ant [9] — это лишь один из многих примеров расширения задачи, написанного для Ant. Эти расширения устанавливаются путем копирования их .jar файлы в ant lib каталог. Как только это будет сделано, эти расширения задач можно будет вызывать непосредственно в обычном режиме. build.xml файл. Расширения WOProject позволяют разработчикам WebObjects использовать ant при создании своих платформ и приложений вместо использования Apple Xcode пакета .

Antcontrib[10] предоставляет набор задач, таких как условные операторы и операции над свойствами, а также другие полезные задачи. [11] [12]

Ant-contrib.unkrig.de[13] реализует задачи и типы для работы в сети, Swing пользовательские интерфейсы JSON , обработку и другое.

Существуют и другие расширения задач для Perforce , .NET Framework , EJB и манипуляций с файловой системой. [14]

Образец build.xml приведен ниже для простого Java-приложения «Hello, world». Он определяет четыре цели: clean, [15] clobber, compile и jar , каждый из которых имеет связанное описание. jar цель перечисляет compile цель как зависимость. Это сообщает Ant, что прежде чем он сможет запустить jar цель, он должен сначала завершить compile цель.

<?xml version="1.0"?>
<project name="Hello" default="compile">
    <target name="clean" description="remove intermediate files">
        <delete dir="classes"/>
    </target>
    <target name="clobber" depends="clean" description="remove all artifact files">
        <delete file="hello.jar"/>
    </target>
    <target name="compile" description="compile the Java source code to class files">
        <mkdir dir="classes"/>
        <javac srcdir="." destdir="classes"/>
    </target>
    <target name="jar" depends="compile" description="create a Jar file for the application">
        <jar destfile="hello.jar">
            <fileset dir="classes" includes="**/*.class"/>
            <manifest>
                <attribute name="Main-Class" value="HelloProgram"/>
            </manifest>
        </jar>
    </target>
</project>

Внутри каждой цели указаны действия, которые Ant должен предпринять для построения этой цели; они выполняются с использованием встроенных задач. Например, чтобы построить compile целевой Ant должен сначала создать каталог с именем classes (что Ant сделает, только если он еще не существует), а затем вызовет компилятор Java. Поэтому используются задачи mkdir и javac. Они выполняют задачу, аналогичную одноименным утилитам командной строки.

Другая задача, используемая в этом примере, называется jar:

<jar destfile="hello.jar">

Эта задача Ant имеет то же имя, что и обычная утилита командной строки Java, JAR, но на самом деле представляет собой вызов встроенной в программу Ant поддержки файлов JAR/ZIP. Эта деталь не важна для большинства конечных пользователей, которые просто получают нужный JAR-файл с запрошенными файлами.

Многие задачи Ant делегируют свою работу внешним программам, как собственным, так и Java. Они используют собственные <exec> и <java> задачи по настройке командных строк и обработке всех деталей сопоставления информации в файле сборки с аргументами программы и интерпретации возвращаемого значения. Пользователи могут видеть, какие задачи это делают (например, <csv>, <signjar>, <chmod>, <rpm>), пытаясь выполнить задачу в системе без базовой программы на пути или без установленного полного пакета разработки Java (JDK).

Портативность

[ редактировать ]

Ant предназначен для работы со всеми системами, для которых доступны среды выполнения Java. Чаще всего он используется с Windows , Linux , macOS и другими операционными системами Unix , но также используется и на других платформах, таких как OS/2, OpenVMS, Solaris , HP-UX. [16]

Ant был разработан как более портативный, чем Make. [4] По сравнению с Make, Ant использует меньше команд оболочки , специфичных для платформы . Ant предоставляет встроенные функции, которые работают одинаково на всех платформах. Например, в образце build.xml файл выше, чистая цель удаляет classes каталог и все, что в нем. В Makefile это обычно делается с помощью команды:

rm -rf classes/

rm — это специфичная для Unix команда, недоступная в некоторых других средах. Microsoft Windows , например, будет использовать:

rmdir /S /Q classes

В файле сборки Ant та же цель может быть достигнута с помощью встроенной команды:

 <delete dir="classes"/>

Кроме того, Ant не различает прямую и обратную косую черту для каталогов и точку с запятой или двоеточие для разделителей путей. Он преобразует каждый из них в символ, соответствующий платформе, на которой он выполняется.

Ограничения

[ редактировать ]
  • Файлы сборки Ant, написанные на XML , могут быть сложными и многословными, поскольку они иерархичны, частично упорядочены и имеют многочисленные перекрестные ссылки. Эта сложность может стать препятствием для обучения. Файлы сборки больших или сложных проектов могут стать неуправляемо большими. Хороший дизайн и модульность файлов сборки могут улучшить читаемость, но не обязательно уменьшить размер.
  • Многие из старых задач, таких как <javac>, <exec> и <java>— использовать значения по умолчанию для параметров, не соответствующих более поздним версиям задач. Изменение этих значений по умолчанию приведет к поломке существующих сценариев Ant.
  • При раскрытии свойств в строке или текстовом элементе неопределенные свойства не возникают как ошибка, а остаются как нерасширенная ссылка (например, ${unassigned.property}).
  • Ant имеет ограниченные правила обработки ошибок.
  • Отложенная оценка свойств не поддерживается. Например, при работе в Antcontrib <for> цикле свойство не может быть переоценено для подзначения, которое может быть частью итерации. (Некоторые сторонние расширения облегчают обходной путь; наборы задач управления потоками AntXtras предусматривают переопределение курсора для циклов.)
  • В make-файлах любое правило для создания одного типа файлов из другого может быть записано внутри make-файла. Например, можно преобразовать документ в какой-либо другой формат, используя правила для запуска другого инструмента. Создать подобную задачу в Ant сложнее: необходимо написать отдельную задачу на Java и включить ее в файл сборки Ant, чтобы обрабатывать тот же тип функциональности. Однако такое разделение может улучшить читабельность сценария Ant, скрывая некоторые детали выполнения задачи на разных платформах.

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

См. также

[ редактировать ]
  1. ^ «Новости проекта Apache Ant» . Проверено 30 августа 2023 г.
  2. ^ «Apache Ant — Добро пожаловать» . ant.apache.org . Проверено 25 января 2022 г.
  3. ^ «Apache Ant — часто задаваемые вопросы» . ant.apache.org . Проверено 25 января 2022 г.
  4. ^ Jump up to: а б Moodie 2005 , стр. 5–9, Глава §1. Знакомство с Ant.
  5. ^ «Почему вы называете это Ant? – Часто задаваемые вопросы по Apache Ant» .
  6. ^ Питер Дональд. «Мирмидон: Предложение Ant2.0» .
  7. ^ Макнил, Конор (4 августа 2005 г.). «Ранняя история развития муравьев» .
  8. ^ Уайли (2002). Инструменты Java для экстремального программирования . п. 76.
  9. ^ «WOProject-Ant – WOProject / WOLips – Confluence» . Архивировано из оригинала 8 января 2009 г.
  10. ^ «Муравей-Вклад» .
  11. ^ «Задачи Ant-Contrib» .
  12. ^ Moodie 2005 , стр. 266–267, Глава §10 Написание пользовательских задач — использование сторонних пользовательских задач.
  13. ^ «ant-contrib.unkrig.de» .
  14. ^ «Обзор задач Ant» .
  15. ^ Moodie 2005 , стр. 121–125, Глава §5. Создание проекта — Сборка проекта — Управление расположением файла.
  16. ^ Руководство по Apache Ant. Раздел «Системные требования» .

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9fe1b1f38cda7d99cd293ecbf73d0b0c__1716294720
URL1:https://arc.ask3.ru/arc/aa/9f/0c/9fe1b1f38cda7d99cd293ecbf73d0b0c.html
Заголовок, (Title) документа по адресу, URL1:
Apache Ant - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)