Это из документации ANT и объясняет это довольно хорошо.
Зачем нужен другой инструмент для сборки?
уже делают, gnumake, nmake, варенье и
другие? Потому что все эти инструменты имеют
ограничения, которые первоначальный автор Ant
не мог жить с при разработке
программное обеспечение на нескольких платформах.
Make-like инструменты по своей сути
на основе оболочки: они оценивают набор
зависимости, затем выполните команды
мало чем отличается от того, что вы бы выпустили на
ракушка. Это означает, что вы можете легко
расширить эти инструменты с помощью или написания
любая программа для вашей ОС
работа над; однако это также означает
что вы ограничиваете себя ОС, или
по крайней мере, тип ОС, такой как Unix,
над которым вы работаете.
Makefiles также являются злыми по своей сути.
Любой, кто работал над ними для любого
время уходит в страшную вкладку
проблема. «Моя команда не выполняется
потому что у меня есть место перед моим
вкладка? !! "сказал оригинальный автор
Муравей слишком много раз. Инструменты, такие как джем
позаботился об этом в значительной степени,
но все еще есть еще один формат
используйте и помните.
Муравей другой. Вместо модели
где он расширяется с помощью оболочки
команды, Ant расширяется с помощью Java
классы. Вместо написания оболочки
команды, файлы конфигурации
На основе XML, вызывая целевое дерево
где различные задачи выполняются. каждый
задача выполняется объектом, который
реализует определенную задачу
интерфейс.
Конечно, это удаляет некоторые из
выразительная сила, которая присуща
возможность построить оболочку
команда, такая как find . -name foo
-exec rm {}
, но она дает вам возможность быть кроссплатформенным - работать
везде и всюду. И эй, если
вам действительно нужно выполнить оболочку
команда, Ant имеет задачу, которая
позволяет различным командам быть
выполняется на основе ОС это
выполняется на.