Что такое муравей?
Apache Ant-это инструмент генерации на основе Java. По словам оригинального основателя Джеймса Дункана Дэвидсона, название этого инструмента является аббревиатурой другого аккуратного инструмента.
Что делает муравей:
Инструменты генерации используются в разработке программного обеспечения для преобразования исходного кода и других входных файлов в исполняемые файлы (и, возможно, для установленных форматов изображений продукта). По мере того, как процесс генерации приложений становится более сложным, становится еще более важным, чтобы обеспечить использование одинаковых шагов поколения во время каждого поколения, в то же время достигая как можно большего количества автоматизации, чтобы своевременно генерировать последовательные версии генерации.
Преимущества муравья:
ANT-это инструмент сборки на основе Java. Теоретически, это несколько похоже на создание в (Unix) C, но не имеет недостатков в Make. Последняя версия: ANT 1.8.4. Поскольку у нас уже есть, Gnumake, Nmake, Jam и другие инструменты сборки, почему нам нужен новый инструмент сборки? Потому что первоначальный автор Ant не может терпеть ограничения и неудобства этих инструментов при разработке программного обеспечения на нескольких (аппаратных) платформах. Мадеры, похожие на инструменты, по сути основаны на оболочке: они рассчитывают зависимости, а затем выполняют команды (эти команды не сильно отличаются от команд, которые вы вводите в командной строке). Это означает, что вы можете легко расширить инструмент, используя OS-специфические или написав новые (командные) программы; Тем не менее, это также означает, что вы ограничиваете себя определенной ОС или конкретными типами ОС, такими как UNIX.
Муравей отличается. В отличие от режима расширения, основанного на командах оболочки, ANT использует классы Java для расширения. (Пользователь) Нет необходимости писать команды оболочки. Файл конфигурации основан на XML. Различные задачи могут быть выполнены, вызывая целевое дерево. Каждое задание выполняется объектом, который реализует конкретный интерфейс задачи.
ANT определяет зависимости между генерируемыми файлами, которые используют кроссплатформенные классы Java. С помощью ANT вы можете написать один файл генератора, который постоянно работает на любой платформе Java (потому что сам ANT реализуется на Java Language), что является самым большим преимуществом муравья
Муравей генерирует анализ файлов:
ANT не определяет свой собственный индивидуальный синтаксис; Вместо этого его сгенерированные файлы записаны в XML. Существует набор предопределенных элементов XML, которые может понять ANT, и новые элементы также могут быть определены для расширения функциональности ANT. Каждый файл сборки состоит из одного элемента проекта, который, в свою очередь, содержит один или несколько целевых элементов. Цель - это определенный шаг в процессе генерации, который выполняет любое количество операций, таких как составление набора исходных файлов. И эти операции сами выполняются другими выделенными тегами задачи, а затем эти задачи будут сгруппированы в отдельные целевые элементы по мере необходимости. Все операции, необходимые для процесса одного поколения, могут быть размещены в одном целевом элементе, но это снижает гибкость. Обычно предпочтительнее разделить эти операции на логические шаги генерации, каждый шаг содержится в его собственном целевом элементе. Это позволяет выполнять отдельные части общего процесса генерации без обязательного выполнения других частей.
Например, вызывая только определенные цели, вы можете скомпилировать исходный код вашего проекта без необходимости создания установленного файла проекта. Элемент проекта верхнего уровня должен содержать атрибут по умолчанию, который указывает цель, которая будет выполнена, если вызван ANT. Затем вам нужно использовать целевой элемент для определения самой цели.
Вот базовый сгенерированный файл:
<? xml version = "1.0"?> <проект default = "init"> <target name = "init"> </target> </project>
Основное использование муравья:
1. Настройка переменных среды:
ANT_HOME: C: /ANT-1.8 -----> Путь каталога установки/декомпрессии ANT
Добавить на путь: c:/ant-1.8/bin -----> Путь каталога бин в муравьев
2. Убедитесь, успешно ли конфигурация переменной среды открывает окно CMD, а затем введите команду: ANT:
См. Следующий дисплей:
Поскольку ANT должен иметь файл Build.xml по умолчанию при создании, существует вышеупомянутая подсказка, что означает, что среда ANT была успешно настроена.
3. Создайте папку под названием Helloworld с использованием муравья:
Во -первых, вам нужно отредактировать build.xml:
<? xml version = "1.0"?> <project default = "init"> <target name = "init"> <span style = "color:#ff0000;"> <mkdir dir = "helloworld"> </span> </target> </project>
Затем переключитесь на каталог, где расположен файл build.xml, введите ANT, и если есть приглашение следующего образом, создание папки будет успешным:
(Часть init эквивалентна выводу журнала)
4. Вы также можете использовать ANT для создания многоуровневых вложенных файловых каталогов, которые необходимо изменить только в файле build.xml:
<? xml version = "1.0"?> <project default = "init"> <target name = "init"> <span style = "color:#ff0000;"> <mkdir dir = "helloworld/a/b/c"/> </span> </target> </project>
5. Удалить многоуровневый каталог, как указано выше:
<? xml version = "1.0"?> <Project default = "init"> <target name = "init"> <span style = "color:#ff0000;"> <delete dir = "helloworld"/> </span> </target> </project>
Примечание. Здесь путь должен только ввести путь к каталогу самого высокого уровня, который является именно силой инструмента муравья:
Если вы хотите удалить каталог на Java, вы можете удалить его, если каталог не пуст, иначе вам придется постепенно удалить его.
Используя инструмент ANT, вы можете напрямую удалять папки, содержащие подкатарии.
Давайте посмотрим на другой образец XML -файла:
<? xml version = "1.0"?> <Project default = "init" name = "project"> <description> Простой проект, внедряющий использование тегов описания в файлах сборки муравья. </description> <!-XML Комментарии также могут быть использованы-> <target name = "init" description = "Инициализировать базу данных аргона"> <!-выполнить шаги инициализации здесь-> </target> </project>
Как видно, комментарии XML могут использоваться во всем файле сборки для ясности. Кроме того, ANT определяет свой собственный элемент описания и атрибуты описания, которые можно использовать для обеспечения более структурированных аннотаций.
Атрибут муравья:
Свойства в ANT аналогичны переменным в языках программирования, и все они имеют имена и значения. Однако, в отличие от обычных переменных, после установки свойства в ANT не изменяются; Они неизменны, как струнные объекты на языке Java. Сначала это может показаться ограничительным, но это соблюдать простой принцип Ant: в конце концов, это инструмент генератора, а не язык программирования. Если вы попытаетесь присвоить новое значение существующему свойству, это не будет считаться ошибкой, но свойство все равно сохранит свое существующее значение
Определение и используйте свойства:
<имя свойства = "metal" value = "bereryllium"/>
Чтобы ссылаться на это свойство в других частях сгенерированного файла, используйте следующий синтаксис:
Скопируйте код следующим образом: $ {metal}
Например, чтобы использовать такое значение, которое является частью значения другого свойства, напишите этикетку следующим образом
<name = "metal-database" value = "$ {metal} .db"/>
Атрибут местоположения:
Атрибуты часто используются для ссылки на файлы или каталоги в файловых системах, но для платформ, которые используют разные разделители пути (например, / и /), это может вызвать проблемы при охват различных платформ. Атрибут местоположения ANT специально разработан для включения путей файловой системы независимым от платформы. Используйте местоположение вместо значения, как это:
<name = "database-file" location = "archive/databases/$ {metal} .db"/> Секции, разделенные пути, используемые для атрибута местоположения, будут преобразованы в правильный формат текущей платформы; А поскольку имя файла относительно, оно считается относительно базового каталога проекта. Мы также можем легко написать это следующим образом:
<name = "database-file" location = "archive/databases/$ {metal} .db"/>Обе версии этого тега будут иметь одинаковое поведение на разных платформах.
Определение зависимостей:
Создание проекта обычно требует многих шагов - например, сначала вам нужно скомпилировать исходный код, а затем упаковать его в файл архива Java (JAR). Многие из этих шагов имеют четко определенный порядок - например, вы не можете упаковать файл класса, пока компилятор не генерирует его из исходного кода. В отличие от последовательной указания мишеней, ANT использует более гибкий подход к определению зависимостей. Каждая цель определяется на основе всех других целей, которые должны быть достигнуты, прежде чем она может быть выполнена. Это достигается с использованием атрибута зависимости целевого элемента
<target name = "init"/> <target name = "preprocess" зависит = "init"/> <target name = "compile" зависит = "init, preprocess"/> <target name = "пакет" зависит = "compile"/>
Этот метод позволяет вам выполнять процесс генерации на любом этапе проекта; ANT сначала выполнит определенную предпосылку. В приведенном выше примере, если ANT завершает шаг компиляции, он определит, что две цели init и preprocess должны быть выполнены в первую очередь. Цель INIT не зависит от какой -либо другой цели, поэтому она будет выполнена в первую очередь. Затем ANT проверяет предварительную обработку Starget и обнаруживает, что это зависит от цели init; С тех пор, как последний был выполнен, ANT не будет выполнять его снова, поэтому он начинает выполнять цель предварительного обработки. Наконец, сама задача компиляции может быть выполнена.
Обратите внимание, что порядок, в котором цели появляются в сгенерированном файле, не важен: порядок, в котором выполнение определяется уникально атрибутом зависит.