Настройка и использование Apache Ant для разработки Java приложений

17 августа, 2007

Практически все, кто когда-нибудь занимался программированием на Java, слышали о программе под названием Apache Ant. Её используют большинство современных сред разработки, такие как Eclipse, NetBeans и многие другие. Так чем же объясняется такая популярность Ant?

Вступление, или несколько слов о том, зачем это надо

Давайте разбираться по порядку. Ant – это инструмент для работы с проектами, в самом широком смысле. С его помощью можно выполнить компиляцию, отладку и тестирование проекта, создавать новые и удалять существующие файлы и папки, создавать архивы с исходными кодами, и многое другое. Перечень функций, которые поддерживает Ant, занимает несколько страниц, кроме того, вы можете создавать свои собственные функции.

Тут возникает вопрос: "Ну и что, все эти операции можно выполнить и без Ant". Да, можно, но Ant даёт возможность это сделать с помощью всего одной команды. Это не только ускоряет работу, но и страхует от ошибок. При выполнении длинной цепочки действий всегда можно что-нибудь забыть.

Естественно, все эти операции Ant выполняет с помощью дополнительных средств, например, для компиляции проекта у вас должен быть установлен Java SDK (software development kit). Сам по себе, Ant выполняет чтение и анализ специального файла (обычно он называется build.xml), который содержит команды для работы с проектом. Этот файл вы можете создать сами, либо с помощью вашей IDE в ходе разработки проекта.

Как создать такой файл мы рассмотрим чуть позже, а пока разберёмся, какие преимущества нам даёт использование Ant.
Рассмотрим простой пример. Допустим, у нас есть проект, состоящий из одного файла (hello.java) с, наверное, самой популярной в мире программой "Hello, World!".

Наши задачи:
1) скомпилировать программу;
2) запустить её (для проверки работоспособности);
3) создать jar-файл (файл manifest.mf у нас есть);
4) создать архив с исходниками (например, для размещения в Internet).

В классическом варианте (без использования IDE) для первых трех пунктов вы должны выполнить примерно такой набор команд:

javac hello.java
java hello
jar cmf hello.jar manifest.mf hello.class

Четвёртый пункт выполняется с помощью вашего любимого архиватора.

Ясно, что писать эти команды после каждого изменения в проекте быстро надоест, особенно, если ваш проект состоит из десятков или сотен файлов, которые расположены в разных папках.
Конечно, самый простой способ решения этой проблемы – использовать какую-нибудь IDE. В этом случае для выполнения первых трех пунктов будет достаточно нажать одну кнопку.
Но вот четвёртый пункт вам, скорее всего, придётся выполнять вручную. А это потенциальный источник ошибок. Можно легко забыть добавить в архив папку с ресурсами к программе, или с тестами, или ещё с чем-нибудь.
Кроме того, у вас могут быть чужие исходники, например, примеры к документации, которые нужно просто запустить, а не заниматься их импортированием в IDE. Или вы хотите передать кому-нибудь свою программу в виде исходных кодов, а этот человек пользуется другой IDE.

Во всех этих случаях использование Ant значительно облегчит вам жизнь.

Страницы: 1 2 3 4

Понравилась статья? Подписывайтесь на продолжение rss link !

Или на мой твиттер twitter link

]]>

Добавьте эту страницу в google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

]]>

Опубликовано в Eclipse, Java Комментарии (23) »

]]>

Вы можете оставить комментарий. Трекбеки закрыты.

  • Анатолий

    Хорошая статья. респект

    • Пашик

      Хорошие слова. Респект тебе мужик depends=анатолий )

  • Анатолий

    Хорошая статья. респект

    • Пашик

      Хорошие слова. Респект тебе мужик depends=анатолий )

  • kez

    Статья довольно хорошая.
    Нашел небольшую ошибку
    >>myProject/${buildTest} будет преобразовано в myProject/build/classes

    думаю автор имел ввиду:
    myProject/${buildTest} будет преобразовано в myProject/build/tests

    • http://www.simplecoding.org/ Владимир

      Большое спасибо, вы абсолютно правы!
      Уже исправил.

  • kez

    Статья довольно хорошая.
    Нашел небольшую ошибку
    >>myProject/${buildTest} будет преобразовано в myProject/build/classes

    думаю автор имел ввиду:
    myProject/${buildTest} будет преобразовано в myProject/build/tests

    • http://www.simplecoding.org/ Владимир

      Большое спасибо, вы абсолютно правы!
      Уже исправил.

  • http://Poister-kazan.narod.ru/java.html Fever

    Спасибо за статью и за блог, получилось, ант работает, но вот я не поняла вот это: Создаем файл build.xml, и учимся им пользоваться – в какой папке-то создавать?

    проверить работает ли ант можно таким образом: ввести в командной строке: ant -version, если работает выйдет серия вашего анта.

    • http://www.simplecoding.org/ Владимир

      в какой папке-то создавать?

      В принципе, можно где угодно, но удобнее всего в корне проекта. Т.к. тогда удобнее задавать относительные пути к файлам.

      Последнюю фразу я не понял. У вас ant не запустился?

      • http://Poister-kazan.narod.ru/java.html Fever

        надо создавать в самом проекте этот файл?

        запустился, версию показывает, я еще больше ничего не пробовала с ним делать. Это я написала чтоб люди знали как проверить работает ант или нет:)

        • http://www.simplecoding.org/ Владимир

          Да, в самом проекте.
          Кстати, я выкладывал пример с таким файлом (ссылка на архив в конце поста).

  • http://Poister-kazan.narod.ru/java.html Fever

    Спасибо за статью и за блог, получилось, ант работает, но вот я не поняла вот это: Создаем файл build.xml, и учимся им пользоваться – в какой папке-то создавать?

    проверить работает ли ант можно таким образом: ввести в командной строке: ant -version, если работает выйдет серия вашего анта.

    • http://www.simplecoding.org/ Владимир

      в какой папке-то создавать?

      В принципе, можно где угодно, но удобнее всего в корне проекта. Т.к. тогда удобнее задавать относительные пути к файлам.

      Последнюю фразу я не понял. У вас ant не запустился?

      • http://Poister-kazan.narod.ru/java.html Fever

        надо создавать в самом проекте этот файл?

        запустился, версию показывает, я еще больше ничего не пробовала с ним делать. Это я написала чтоб люди знали как проверить работает ант или нет:)

        • http://www.simplecoding.org/ Владимир

          Да, в самом проекте.
          Кстати, я выкладывал пример с таким файлом (ссылка на архив в конце поста).

  • Вадик

    Респект автору нужная статья)))

  • Вадик

    Респект автору нужная статья)))

  • ira

    Спасибо большое за статью! вы отлично пишете! (я знаю, что комментарий бесполезен, но очень хотелось высказать благодарность :) )

  • ira

    Спасибо большое за статью! вы отлично пишете! (я знаю, что комментарий бесполезен, но очень хотелось высказать благодарность :) )

  • Слава

    Автор, спасибо!

  • Skioki

    спасибо!

  • Anastasiya Pilyugina

    Статья отличная, спасибо! http://www.enterra.ru/blog/automation_builds_android_applications/ тоже в тему будет,думаю

]]>
Tweet