Ant in Action

Рубрика: Development, Java, Книги | 12 March 2008, 16:13 | juriy

Ant in Action Сколько людей на планете умеют читать? Довольно много. Сколько из них умеют к тому-же писать? Все еще много. Сколько из них умеют писать грамотно? Существенно меньше. Сколько из оставшихся умеют писать грамотные вещи: к примеру литературные произведения? Таких совсем мало.

Как это связано с обзором книги Ant in Action, спросите вы? Напрямую! Каждый уважающий себя Java разработчик в состоянии прочесть готовый Ant скрипт и разобрать, что тот делает. Написать даже простой скрипт сложнее: необходимо понимать некоторые нюансы системы. А написать правильный скрипт, который выполняет сборку, тестирование и поставку сложного проекта – еще тяжелее. Тут нужен опыт работы и с Ant и с Java и еще с пол дюжины дополнительных систем и утилит.


Книга Ant in Action (2dn ed.) учит писать правильные скрипты правильно. Помимо основных принципов построения скриптов и базовых Ant task’ов авторы подробно рассмотрели процесс поддержки полного жизненного цикла проекта на основе Ant и других утилит. Книга оставляет ощущение полноты и даже некоторой чрезмерности: порой казалось, что книга посвящена не Ant’у а настройке благоприятной среды для запуска модульных тестов и непрерывной интеграции. Некоторые главы касались Ant’а лишь вскользь.

Мой вывод: хорошая работа, которую однозначно стоит прочесть java разработчикам, претендующим на звание Senior. Первая и третья часть просто замечательны. Вторую часть я рекомендовал бы читать выборочно – далеко не все проекты нуждаются в том обилии утилит, которые там так подробно описаны.

Общая оценка: 4 из 5. Много хорошего материала, хорошая и доступная манера изложения, но некоторые главы слабо связаны с основной тематикой.

Комментариев: 12

12 Responses to “Ant in Action”

Комментарии:

  1. Farcaller

    да ant вообще страшноватый такой….

  2. juriy

    Скажите ключевое слово make и у нас будет новый повод для веселого холи-вора с жертвами среди мирного населения :-).

    Ant – красивый как Ant :-)

  3. dimat

    Не нахожу ничего страшного в анте. Очень удобная и полезная штуковина.

  4. Vadim Voituk

    DimaT: Видать тебе не приходилось править build.xml в 6 тыс строк (разбитый на 3-4 части) :)
    IMHO в Ant хорошо – это встроенные возможности, а плохо – плохочитабельный XML-синтаксис.

    Сам же в последнее время, там где требования проекта не запрещают, использую Groovy Ant Builder.
    Те же “плюшки” – только в профиль :)
    Вот даже подумываю написать AntBuilder serializer для получения build.xml из основанного на AntBuilder-скрипта.

  5. juriy

    >> Видать тебе не приходилось править build.xml в 6 тыс строк >> (разбитый на 3-4 части)

    Ну с этим доводом я не согласен. Это все равно что “Java плохая платформа, потому что я видел класс на 6 тыс. строк”.

    Большой и плохо читабельный скрипт говорит только о том, что его плохо написали.

    2 DimaT – согласен.

    Я в свободное время пишу небольшой проект, который состоит из пяти более мелких проектов, три из которых собираются очень однотипно, с небольшими изменениями и артефакты одних проектов используются другими (последовательность сборки имеет значение). Без Ant’а я бы очень долго и весело все это собирал бы.

    Кстати, именно этот проект и стал мотивацией для чтения книги.

  6. Vadim Voituk

    Так никто же не говорит, что Ант – плохая платформа!
    Я говорю что читается он не очень удобно, что, кстати, подстегивает писать build.xml понятно и аккурантно :)

  7. Dmytro

    Работал с Ant на протяжении последних 2 лет. Очень плотно работал: собирал простые и не очень Swing приложения, web-приложения под Tomcat (заодно из build.xml в Tomcat деплоили). Собирал проекты из сорцов множества модулей, вообщем всякого рода приемы и извращения пробовал.
    Пробовал Ant + Ivy.
    Недавно решил использовать Maven2 – очень понравилось. В отличии от Ant, он конечно не предоставляет множества атомарных операций типа copy, mkdir и т.д., но создавая структуру проекта по идеологии Maven2 такие операции и не понадобятся (разве что в каких-то исключительных случаях).
    Решение вопросов с зависимостями – блеск, гораздо удобнее, чем в Ant + Ivy (не расценивайте как повод для holy war). Генерация файлов проекта для IDEA, Eclipse с включением в них зависимостей от необходимых библиотек, их исходных кодов и javadoc – просто супер. Ну и конечно же предоставление набора goals (аналог target в Ant) “из коробки” достаточен для быстрого старта: создав простой pom.xml, вы сразу получаете возможность компилировать ваш код, запускать тесты, упаковывать в jar/war.
    К чему этот пост?
    Попробуйте Maven2 хотя бы для того, чтобы понять какие еще идеи продуктов для построения приложений находят применение и довольно удобную реализацию.

    P.S. для особо непримиримых сторонников Ant: Maven2 позволяет работать и с Ant target

  8. Juriy

    >> К чему этот пост?

    Немного “необычный” вопрос, как по мне. Dmytro, этот пост – рецензия на прочитанную книгу. Я высказываю свое мнение, чтобы читатели этого блога сделали выводы для себя, стоит ли её читать.

    Я не пробовал плотно работать с Maven или Maven2, поскольку Ant отлично справляется с поставленными задачами.

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

  9. Dmytro

    Да, Вы правы :) Приношу извинения, если пост как-то нарушил общую стилистику темы.
    На самом деле, к написанию поста о Maven меня побудило широкое обсуждение возможностей применения и масштабирования Ant. А посему пост о Maven должен был стать некоторым контр-мнением.

  10. Dmytro

    Для того, чтобы вернутся в “тему”, несколько слов о книге:
    читал (правда, выборочно) сразу же после выхода (июль-август 2007). Книга хороша, как и многие экземпляры из серии издательства Manning “… in Action”. Книга рассматривает последнюю версию Ant 1.7.0, но содержит ремарки, которые указывают на применимость конкретных функций в актуальной и предыдущих версиях.
    Тема раскрыта широко: описанные в книге возможности касаются как базовых вещей, так и “отношений” Ant с J2EE приложениями, IDE, Continuous Integrarion серверами. Вообщем, рассмотренный набор возможностей будет интересен как начинающему разработчику так и “матерому” профи, который хочет открыть новые “плюшки” в используемом инструменте.

  11. Juriy

    :-) Ээх, вот больше бы таких комментариев в тему :-) Спасибо!

Leave a Reply