Как использовать муравья? - PullRequest
5 голосов
/ 29 марта 2009

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

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

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

Ответы [ 4 ]

18 голосов
/ 29 марта 2009

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

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

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

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

5 голосов
/ 29 марта 2009

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

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

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

  • запустить javac на источнике
  • запустить Javac на сиськи
  • запустить инструментарий cobertura на источнике (это для покрытия кода)
  • собрать файлы из источника
  • встряхните инструментарий cobertura
  • встряхните классы юнит-теста
  • запустите checkstyle, pmd, findbugs в источнике, чтобы найти предупреждения
  • запустить модульные тесты через cobertura, чтобы получить покрытие кода из них

Итак, это 8 шагов, которые я сделал для каждой сборки, которые я могу сделать, просто запустив "ant".

2 голосов
/ 29 марта 2009

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

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

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

0 голосов
/ 30 марта 2009

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

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

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

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

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

...