Apache Ant |
Автор: admin Просмотров: 6035 Комментарии:
Добавлен: 1 мая 2016
Обновлено: 1.05.2016 - 10:31
Программное средство для автоматизации процесса сборки программного обеспечения. Появилось из проекта Apache Tomcat в 2000 году.
Apache Ant создан для замены инструмента сборки "make", имеющего целый ряд проблем. Apache Ant похож на make, но реализован на Java, требует Java и лучше всего подходит для сборки программ на Java.
Наиболее заметное отличие Ant от make в том что Ant использует XML для описания процесса сборки и его зависимостей, в то время как Make использует формат Makefile. Файл XML по умолчанию называется build.xml.
Ant это проект Apache, и выпущен под лицензией Apache.
Расширения Ant
WOProject-Ant является лишь одним из многих примеров расширений задач, написанных на Ant. Эти расширения используются путём копирования ихних jar файлов в каталог библиотек Ant. Как только это будет сделано, эти расширения задач можно будет вызвать непосредственно из build.xml. Расширения WOProject позволяют разработчикам WebObjects использовать Ant для создания фреймворков и приложений, без пакета Apple Xcode
Antcontrib предоставляет набор задач, таких как условные операторы и операции по свойствам, а также другие полезные задачи.
Ant-contrib.unkrig.de реализует задачи и типы для сетей, пользовательских интерфейсов Swing, обработка JSON и другое.
Существуют расширения задач для Perforce, .Net, EJB, манипуляций с файлами.
Пример
Образец файла build.xml для простого приложения "Hello, World" на Java. Он описывает четыре задания: clean, clobber, compile и jar, каждое из которых имеет соответствующее описание. Целевые списки jar компилируют зависимости. Это говорит о том, что Ant перед запуском цели jar должен сначала выполнить цель компиляции.
<?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 должен выполнить чтобы построить эту цель; они выполняются с помощью встроенных задач. Например, чтобы построить цель компиляции, сначала необходимо создать каталог с именем класса (который Ant сделает только тогда, когда он уже не существует), а затем вызвать компилятор Java. Таким образом, задачи используют mkdir и javac. Выполняются задачи, аналогичные инструментам командной строки с тем же именем.
Другая задача из этого примера:
<jar destfile="hello.jar">
Эта Ant задача имеет то же имя что и общий Java инструмент командной строки, JAR, но на самом деле, вызов посылается встроенным программам в JAR/ZIP файл. Эта деталь не относится к большинству конечных пользователей, которые просто получают файл JAR, с запрошенными файлами.
Многие Ant задачи делегируют свою работу внешним программам, либо родным либо Java. Они используют Ant задачи
Переносимость Ant
Одной из основных целей Ant было решение проблем портативности Make. Первым шагом этого решения в Makefile является то, что действия, необходимые для создания цели, определяются как оболочки команд, которые являются специфическими для платформы, на которой работает Make. Разные платформы требуют разных командных оболочек. Ant решает эту проблему, предоставляя большое количество встроенных функций, которые ведут себя одинаково на всех платформах. Например, в приведенном выше файле build.xml, цель clean удаляет каталог классов. В Makefile это обычно делают командой rm -rf classes/
Где rm - это специфическая команда UNIX, недоступная в других окружениях. Аналог этой команды в Microsoft Windows: rmdir /S /Q classes
В Ant файл сборки и эта же цель достигается командой
Вторым решением проблемы переносимости является результат того, что символ, используемый для разделения пути к системному каталогу элементов компонентов отличается в зависимости от платформы. Unix использует косую черту (/) для разграничения компонентов, в то время как для Windows использует обратную косую черту (\). В Ant можно выбирать свои конвенции: косую черту или обратную косую черту для каталогов; точку с запятой или двоеточие для разделителей пути. Ant преобразует каждый символ для соответствующей платформы, на которой он выполняется.
Ограничения Ant
- Файлы сборки, которые написаны в XML, могут быть сложными и многословным. Сложная структура (иерархическая, частично упорядоченная, и сшитая ссылками) из документов Ant, может быть препятствием для обучения. Файлы сборки больших или сложных проектов могут стать неуправляемыми. Хороший дизайн и модуляризация файлов сборки могут улучшить читабельность, но не обязательно приведет к снижению размера. Другим инструментам для сборки, таким как Gradle или Maven, следует использовать более краткие сценарии за счет общности и гибкости.
- Многие старые задачи, в основном те, которые используются каждый день -
, и используют значения по умолчанию для опций, которые не согласуются с более поздними версиями задач. Изменение этих значений по умолчанию будет нарушать существующие скрипты. - При расширении свойств в элементе строки или текста, неопределенные свойства не воскресают как ошибка, но остается в качестве не расширенной ссылки (например , $ {unassigned.property} ).
- Ant имеет ограничения правил обработки сбоев, не сохраняет состояния и поэтому не может быть использован в качестве инструмента рабочего процесса для любого рабочего процесса, кроме классических процессов сборки и тестирования.
- Ленивые вычисления не поддерживаются. Например, при работе в пределах Antcontrib
loop, свойство не может быть повторно оценено для суб-значений, которое могут быть частью итерации. (Некоторые сторонние расширения облегчают обходной путь;AntXtras flow-control tasksets обеспечивает переопределение для cursor for loops.) - В Makefiles, любое правило, чтобы создать один тип файла из другого, может записать инлайн, встроенный в Makefile. Например, вы можете преобразовать документ в другой формат, используя правила для выполнения другого инструмента. Создание подобной задачи в Ant является более сложным: нужно написать отдельную задачу на Java и включить в сборочный файл Ant, чтобы обработать один и тот же тип функций. Тем не менее, такое разделение может улучшить читаемость сценария Ant, скрывая некоторые детали того, как задача выполняется на различных платформах.
Существует множество сторонних расширений Ant (называемые antlibs ), которые обеспечивают большую часть недостающей функциональности. Кроме этого, Eclipse IDE может создавать и выполнять сценарии Ant, в то время как NetBeans IDE использует Ant для своей внутренней системы сборки. Поскольку эти IDE очень популярные системы разработки, они могут значительно упростить использование Ant. В качестве бонуса, Ant скрипты, генерируемые NetBeans могут быть использованы за пределами этого IDE в качестве автономных сценариев.
https://en.wikipedia.org/wiki/Apache_Ant
Обратите внимание на Apache Maven - современный инструмент с похожими задачами.
------------------------
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Категория: Сборка программ
Лицензия:
Apache License 2.0
Интерфейс графический
Язык программирования:
Java
Сайт проекта
Скачать Apache Ant
Комментарии |