Apache Ant

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 29 мая 2014 года; проверки требуют19 правок.
Перейти к навигацииПерейти к поиску
У этого термина существуют и другие значения, см.ant.
Apache Ant
(Another Neat Tool)
Логотип программы Apache Ant (Another Neat Tool)
Скриншот программы Apache Ant (Another Neat Tool)
ТипАвтоматизация сборки
РазработчикApache Software Foundation
Написана наJava[3][4]
Операционная системаКроссплатформенное программное обеспечение
Первый выпуск19 июля2000[1]
Аппаратная платформаJava Virtual Machine
Последняя версия
Репозиторийgit-wip-us.apache.org/re…
gitbox.apache.org/repos/…
Читаемые форматы файлов:
Ant build file[вд]
ЛицензияApache 2.0 License
Сайтant.apache.org
Логотип Викисклада Медиафайлы на Викискладе

Apache Ant (англ. ant — муравей иакроним — «Another Neat Tool») —утилита для автоматизации процесса сборки программного продукта. Являетсякросс-платформенным аналогом утилитыmake, где все команды записываются вXML-формате.

Ant был создан в рамках проектаJakarta,сегодня — самостоятельный проект первого уровняApache Software Foundation.

Первая версия была разработана инженеромSun MicrosystemsДжеймсом Дэвидсоном (James Davidson[англ.]), который нуждался в утилите, подобнойmake, разрабатывая первую референтную реализациюJ2EE.

Ant, в отличие от другого сборщика проектовApache Maven, обеспечиваетимперативную, а недекларативную сборку проекта.

Содержание

Описание

[править |править код]

В отличие от make, утилита Ant полностью независима от платформы, требуется лишь наличие на применяемой системе установленной рабочей средыJava —JRE.Отказ от использования командоперационной системы и форматXML обеспечивают переносимость сценариев.

Управление процессом сборки происходит посредствомXML-сценария, также называемого Build-файлом.В первую очередь этот файл содержит определение проекта, состоящего из отдельных целей (Targets). Цели сравнимы спроцедурами в языках программирования и содержат вызовы команд-заданий (Tasks).Каждое задание представляет собой неделимую, атомарную команду, выполняющую некоторое элементарное действие.

Между целями могут быть определены зависимости — каждая цель выполняется только после того, как выполнены все цели, от которых она зависит (если они уже были выполнены ранее, повторного выполнения не производится).

Типичными примерами целей являютсяclean (удаление промежуточных файлов),compile (компиляция всех классов),deploy (развёртывание приложения на сервере).Конкретный набор целей и их взаимосвязи зависят от специфики проекта.

Ant позволяет определять собственные типы заданий путём созданияJava-классов, реализующих определённыеинтерфейсы.

Часто применяемые задания (Tasks)

[править |править код]

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

КодДействие
javacкомпиляция Java-кода
copyкопирование файлов
deleteудаление файлов и каталогов
moveперемещение файлов и каталогов
replaceзамещениефрагментов текста в файлах
junitавтоматический запускюнит-тестов
execвыполнение внешней команды
zipсоздание архива в форматеZip
cvsвыполнениеCVS-команды
mailотправкаэлектронной почты
xsltналожениеXSLT-преобразования

Пример сценария

[править |править код]

Данный сценарий определяет две цели —clean иbuild. Первая выполняет удаление временных файлов, вторая — компиляцию и созданиеJAR-архива.Цельbuild зависит отclean, поэтому при её запуске будет сначала выполнена очистка и только затем — задания собственно сборки.Build также выбрана в качестве цели по умолчанию. Это означает, что она будет выполнена при обработке данного сценария без явного указания цели.

<?xml version="1.0"?><projectdefault="build"basedir="."><propertyname="name"value="AntBuildJar"/><propertyname="src.dir"location="${basedir}/src"/><propertyname="build"location="${basedir}/build"/><propertyname="build.classes"location="${build}/classes"/><pathid="libs.dir"><filesetdir="lib"includes="**/*.jar"/></path><!-- Сборка приложения --><targetname="build"depends="clean"description="Builds the application"><!-- Создание каталогов --><mkdirdir="${build.classes}"/><!-- Компиляция исходных файлов --><javacsrcdir="${src.dir}"destdir="${build.classes}"debug="false"deprecation="true"optimize="true"><classpathrefid="libs.dir"/></javac><!-- Копирование необходимых файлов --><copytodir="${build.classes}"><filesetdir="${src.dir}"includes="**/*.*"excludes="**/*.java"/></copy><!-- Создание JAR-файла --><jarjarfile="${build}/${name}.jar"><filesetdir="${build.classes}"/></jar></target><!-- Очистка --><targetname="clean"description="Removes all temporary files"><!-- Удаление файлов --><deletedir="${build.classes}"/></target></project>

Примечания

[править |править код]

См. также

[править |править код]
  • Apache Maven — альтернативный инструмент со схожими задачами
  • Gradle — альтернативный инструмент, поддерживающий задания (tasks) из ant

Ссылки

[править |править код]
Перейти к шаблону «Apache»
Проекты верхнего уровня
Подпроекты
Apache Commons
Lucene
DB[вд]
Apache Web Services[англ.]
Другие проекты
Развивающиеся проекты (Incubator)
Списанные проекты (Attic)
Перейти к шаблону «Системы автоматизации сборки»
Источник —https://ru.wikipedia.org/w/index.php?title=Apache_Ant&oldid=118839833
Категории:
Скрытые категории: