Опубликован перевод (http://docs.javatech.info/index.php/%D0%A1%D1...) статьи "Ant in Ten Steps (http://jroller.com/page/rolsen?entry=ant_in_ten_steps)", в которой рассказывается об использовании системы сборки Java проектов Apache Ant (http://ant.apache.org/).URL: http://docs.javatech.info/index.php/%D0%A1%D1...
Новость: http://www.opennet.me/opennews/art.shtml?num=7310
Успел скопировать статью... страницу, похоже, засуспендили
поделись статейкой
>поделись статейкойРазместил копию: http://www.opennet.me/base/dev/ant_10.txt.html
Никакой переводной статьи нет.
Не ради флейма - что есть такого в ant, что делает его лучше, чем make? XML-ный синтаксис, возможно, удобен для GUI и кодогенераторов, но враждебен к человеку.
>Не ради флейма - что есть такого в ant, что делает его лучше, чем make?
Он написан на java и написан специально на java. И лучше make тем что реализация существует одна и работает она практически всегда одинаково. А реализаций make существует несколько штук и каждая может работать слегка по другому.>XML-ный синтаксис, возможно, удобен для GUI и кодогенераторов, но враждебен к человеку.
Формат make дружелюбен к человеку? Я вот как бы не сказал.
Формат make тривиален для любого кто работал в shell/command prompt, даже в том же DOS. С XML нужно в голове держать в голове целую схему. Если бы XML был хорошо читаем, мы бы не в GUI под видной конфигурировали софт, а в XML редакторе. Если уж до читаемости, то тот же JSON (www.json.org) куда более удобен.
>Формат make тривиален для любого кто работал в shell/command prompt, даже в
>том же DOS.
Я бы так не сказал. Для того чтобы мне написать makefile который работал как мне надо мне пришлось ознакмиться с документацией по Gnu make. Без нее там черт ногу сломит.> С XML нужно в голове держать в голове целую схему.
В словаре ant мало тегов это раз. Второе XML гараздо более удобочитаем чем makefile. Плюс его гараздо проще автоматически генерить. Ну и третье в java проще работать с xml чем с файлами формата make.>Если бы XML был хорошо читаем, мы бы не в GUI под видной конфигурировали софт, а в XML редакторе.
XML позволяет строить на его основе GUI конфигураторы. Т.к. нет неоднозначностей при прочтении.>Если уж до читаемости, то тот же JSON (www.json.org) куда более удобен.
Ну можно еще jam вспомнить. Для java же ant лучше чем make. Мне не надо его тащить за собой. Т.к. для работы ant требуется только jvm и его классы.
>В словаре ant мало тегов это раз
Как это мало?На каждый инструмент там по тэгу - отдельно для компилятора, отдельно для jar, отдельно для junit, отдельно для каждого архиватора и т.д. И у каждого свой набор атрибутов, который надо помнить наряду с параметрами командной строки. А создание тэгов для собственных инструментов вообще проходит по разряду чёрной магии.
То есть, для GUI-генераторов в пределах java-realm, наверное, неплохо, но что-то более специфическое делать тяжело.
jam как "make нового поколения" выглядит неплохо, но серьёзных проектов с его использованием, кроме boost, как-то не вспоминается.
>Как это мало?
Мало. Для конкретных задач задач используется конкретный набор тегов. Его всегда можно посмотреть в справочнике. Да и мнемоника у них нормальная чего не скажешь про мнемонику make-файлов>На каждый инструмент там по тэгу - отдельно для компилятора, отдельно для jar, отдельно для junit, отдельно для каждого архиватора и т.д.
Именно в этом и плюс. Это означает что все будут понимать что там написано. Если не понимают есть справочник с указанием, что и как. Плюс вы их быстро запомните. Вы видимо мало работали с XML. Это очень понятный формат.>И у каждого свой набор атрибутов, который надо помнить наряду с параметрами командной строки.
Которые есть в справочнике. Которые вы забьете и запомните. Или не запомните если вам это было надо один раз.
>А создание тэгов для собственных инструментов вообще проходит по разряду чёрной магии.
Только в том случае если вы не знаете как создавать словарь для xml.
>То есть, для GUI-генераторов в пределах java-realm, наверное, неплохо, но что-то более специфическое делать тяжело.
Основное применение ant это все же java проекты. Т.к. мало кто захочет тащить за собой JRE для системы сборки.>jam как "make нового поколения" выглядит неплохо, но серьёзных проектов с его использованием, кроме boost, как-то не вспоминается.
Еще Haiku использует. А вообще инерция вещь сильная. Многие вещи используются по инерции.
> Не ради флейма - что есть такого в ant, что делает его лучше, чем make?Тем, например, что не нужно кроме make, чтобы скомпелировать сишную программу, инсталировать еще всякие autoconf/automake/perl/m4/etc
Кроме того кто-нибудь пробовал написать для make скрипт который не нужно менять всякий раз когда в разветвленном проекте с множеством папок будут появлятся новые папки с новыми файлами?
Мне удалось написать нечто работающее, но понять этот файл иногда затрудняюсь даже я(хотя мой вариант все равно надо редактировать когда новый каталог появляется).Кроме того, невидимые табы порой исчезают в мейкфайле после редактирования в редакторе который настроен на замену табов на пробелы и наличе таких синтаксических элементов как невидимые табы тоже не делают чести формату мейкфайла.
Ну а если вы пишете программу для разных платформ, то просто задалбаетесь писать кучу разных мейкфайлов, которые делают одно и тоже (поэтому и нужны всякие уродливые нашлепки вроде автоконфов)
Хотя пожалуй явным недостатком анта является то, что он делает только то что умеют его тэги. Если что-то не заложено в возможности тэга то это побороть можно только написанием своего варианта тэга. Но хорошая новость в том что 98% задачь можно решать тем что уже есть в анте и для анта.
т.е. чем лучше?
Step One: Why Ant? :)
На самом деле для java проектов он неплох. и svn и javadoc и junit, все в одном флаконе, все в одном месте
Сталкивался и с make и с NANT (тоже что и Ant только для c#).
Так вот - ANT по сравнению с make это как развитая цивилизация по сравнению с дикарем. Писать несравненно легче, документация проще. Структура кода несравненно понятнее для человека, можно использовать xml редакторы. Собирать можно не только java проекты, мы вот с++ wince проект собираем, вплоть до сборки дистрибутива, замены в файлах номера версии, и отправки на ftp. одним кликом.
Добрый день. Вы немогли бы поделиться какими-то наработками?
Дело в том, что мои ребята написали подобное с помощью perl + сборка msvc solutions,
очень бы хотел перевести их на Ant.Заранее спасибо.
--
With regards,
Vladislav Lazarenko <snail@b2bits.com>C++ Software Developer
B2BITS Corp.ICQ# 162671766
E-Mail: snail@b2bits.com
LJ: http://jetsnail.livejournal.com/
Ушло по почте
Спасибо. В итоге перешел всеми проектами на ant. Начиная от сборки Java/C++, заканчивая тестированием и развертыванием.