2009-03-29 3 views
5

Я пытался понять, для чего используется Ant, но я до сих пор его не понимаю.Как использовать Ant?

Может кто-нибудь дать мне один случай использования, для которого используется Ant, я могу попытаться понять, почему Ant полезен и для чего я могу его использовать?

Я занимаюсь разработкой Java в Eclipse, и я просто начинаю работу с сервлетов и Google Web Toolkit.

+1

Эффективен дубликат http://stackoverflow.com/questions/610732/what-is-build-automation-software-for-example-ant –

+0

(в том, что ответы на этот вопрос ответить на этот вопрос напрямую.) –

ответ

17

Ant - это инструмент для сборки. Скажем, например, у вас есть несколько проектов в рабочем пространстве Eclipse, все из которых являются частями более крупного приложения. Чтобы собрать все это в файл jar с включенными зависимостями, вы можете выбрать все проекты и экспортировать их как файл jar, но это несколько громоздко.

Ant - это расширяемое решение. Вы определяете процесс сборки в XML, а ant компилирует ваши java-файлы в соответствии с этим рецептом.

Муравей может сделать больше, чем строительство. Я работал в компании, где механизм развертывания был пакетом Debian в нашем собственном репозитории. У нас были скрипты Ant, которые собирали файлы jar, организовывали их и некоторые файлы метаданных в пакет Debian, помещали их в репозиторий и повторно генерировали манифест репозитория.

Как и в случае с чем-либо Java, вам нужна большая конфигурация, прежде чем вы будете разбираться с Ant, но некоторые из основных руководств должны дать вам представление о том, что вы получаете.

4

Ant, как любой инструмент построения, предназначен для автоматизации повторяющихся задач построения вашего кода.

Вместо того чтобы запускать javac каждый раз вручную, вы кладете команду в скрипт Ant, а затем, когда вы запустите ant, он запустит javac для вас.

Мой типичный процесс сборки с муравья выходит что-то вроде этого:

  • запустить JAVAC на источник
  • запустить JAVAC на ТЭЦ
  • управляют Cobertura приборов на источник (это для покрытия кода)
  • банки до классов от источника
  • банка вверх по Cobertura инструментальных классов
  • банка до и- NIT классы тестов
  • запустить Checkstyle, PMD, FindBugs на источник, чтобы найти предупреждения
  • запустить юнит-тестов с помощью Cobertura, чтобы получить покрытие кода из них

Так что 8 шагов, которые я сделал на каждом построить, что я могу сделать просто, запуская «муравей».

2

Ant - это файл на основе XML.

Вы не увидите большой пользы от использования Ant, если вы один разработчик, который уже создает и успешно создает код с помощью IDE, например Eclipse.

Большее преимущество придается команде, сотрудничающей с кодом. Тогда вы получите большой импульс, если будете использовать систему круиз-контроля или другое средство непрерывной интеграции. CC требует Ant build.xml.

0

Это из документации ANT и объясняет это довольно хорошо.

Почему другой инструмент сборки, когда есть уже делают, gnumake, NMAKE, варенье и другие ? Потому что у всех этих инструментов есть ограничения , которые оригинальный автор Ant не мог жить при разработке программного обеспечения на нескольких платформах. Инструментарий Make-like по существу shell-based: они оценивают набор зависимостей , а затем выполняют команды , не похожие на то, что вы бы выпустили на оболочке . Это означает, что вы можете легко расширить эти инструменты, используя или записывая любую программу для ОС, которую вы работающий; однако это также означает, что вы ограничиваете себя ОС или , по крайней мере, тип ОС, например Unix, , над которым вы работаете.

Makefiles по своей сути являются злыми. Любой, кто работал над ними для любого времени, столкнулся с опасной вкладкой проблемой. «Моя команда не выполняет , потому что у меня есть место перед моей вкладкой ? !!" сказал оригинал автора Муравьиный путь слишком много раз. Такие инструменты, как Jam , позаботились об этом в значительной степени, , но все еще имеют еще один формат для использования .

Муравей отличается. Вместо модели , где она расширена командами на основе оболочки, Ant расширяется с использованием классов Java . Вместо написания команд оболочки файлы конфигурации: На основе XML, вызывая целевое дерево , где выполняются различные задачи. Каждая задача выполняется объектом, который реализует конкретный интерфейс Задачи .

Конечно, это устраняет некоторые выразительной силы , которая присуща возможность построить команду оболочки , такую ​​как find . -name foo -exec rm {}, но это дает вам возможность быть кросс-платформенной - работать везде и всюду , И эй, если вам действительно нужно выполнить команду оболочки , Ant имеет задание, которое позволяет выполнять разные команды , выполненные на основе ОС, это , выполняющие.

Смежные вопросы