Ant

105 views
Skip to first unread message

Dima Pilipenko

unread,
Apr 14, 2009, 1:32:19 PM4/14/09
to ruF...@googlegroups.com
Всем привет :)
Создаю специально тему в которой мы поделимся апостериорными знаниям об ANT.
Вот главные вопросы:
1. Что это такое?
2. Для чего он?
3. И в каком случае стоит его ставить?
Всем приятного дня!

Denis Kolyako

unread,
Apr 14, 2009, 1:40:23 PM4/14/09
to ruF...@googlegroups.com
> 1. Что это такое?
> 2. Для чего он?

Средство оптимизации рутинных
операций, например.

>
> 3. И в каком случае стоит его ставить?

Мы, например, используем его для
обновления версии билда,
автоматической перезаписи кода
некоторых классов и конфигов
компиляции
(в зависимости от текущих условий и
времени).

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


Денис Коляко
______________________________________________________________________
e...@timezero.ru | http://etcs.ru/ | http://timezero.com/




Valentin Simonov

unread,
Apr 14, 2009, 1:40:40 PM4/14/09
to ruF...@googlegroups.com
Боюсь разочаровать, но такая тема уже есть.
Тут -------------> http://www.google.ru/search?q=ant

foreground

unread,
Apr 14, 2009, 1:47:14 PM4/14/09
to ruF...@googlegroups.com
> Valentin Simonov
ну так цель-то этой ветки показать, так сказать, полезность этой штуки.

> Denis Kolyako
Я так понимаю, если ты работаешь один или в паре, она не сильно нужна?

DoctorX

unread,
Apr 14, 2009, 1:47:30 PM4/14/09
to ruF...@googlegroups.com

Вопрос для новичка (например меня) интересен и если люди поделятся опытом и ссылками (я так понял доброе начинание с гугля  положено :) ). Со спецификой разроботке в среде Flash.


--
&copy

Denis Kolyako

unread,
Apr 14, 2009, 1:51:16 PM4/14/09
to ruF...@googlegroups.com

> Я так понимаю, если ты работаешь один
или в паре, она не сильно нужна?

Нет, от количества человек не зависит.
Это просто инструмент для выполнения
некоторых
рутинных операций.

foregro...@gmail.com

unread,
Apr 14, 2009, 1:55:12 PM4/14/09
to ruFlash

Flop Serg

unread,
Apr 14, 2009, 2:35:30 PM4/14/09
to ruF...@googlegroups.com
АНТ знать очень полезно,
но мне помогает пока всего на черверочку,
(т.к. не все знаю (например заливаю на сервер все еще ручками) )

пока не столкнулся с большими проектими не было необходимости
теперь вот он у меня послушный по одному щелчку делает кучу всего разного,
он это делает за 15-20 сек у меня на это уходило бы 15-20 минут
АНТ - хороший


Roma Oskolkov

unread,
Apr 14, 2009, 2:41:11 PM4/14/09
to ruF...@googlegroups.com
А какие-такие хараеткристики в классах и проектах надо менять от версии к версии?
У меня обычно одна конатстна на весь проект, её меняю ручками, и билдюсь :)
Ии нужно чтобы каждый класс отдельно знал конкретно свою версию?

Flop Serg

unread,
Apr 14, 2009, 3:27:56 PM4/14/09
to ruF...@googlegroups.com

У меня обычно одна конатстна на весь проект, её меняю ручками, и билдюсь :)

У тебя обычно маленький проект
к примеру:
-урл сервера (локалхост или настоящий рабочий)
-вкомпиливать ли блиблиотеку какого-нибудь логгера/дебагера/профайлера/чего-то там еще
-закоментить все вызовы и импорты этого логгера (ручками делать это та еще моррока))))
-флаг нужно ли логнится на сервер и какими логин-паролями
           (например отдельно взятый кусочек не сможет работать ОДИН т.к. в рабочей ситуации логинится старший по званию кусочек)
-билдить много надо а не один файлик (пару swc, которые юзаются в старшем, младшиые кусочки и везде свои зависимости)
-потом все это разложить по нужным папкам / на сервер закачать и запустить



Valentin Simonov

unread,
Apr 14, 2009, 3:31:43 PM4/14/09
to ruF...@googlegroups.com

-урл сервера (локалхост или настоящий рабочий)
-вкомпиливать ли блиблиотеку какого-нибудь логгера/дебагера/профайлера/чего-то там еще
-закоментить все вызовы и импорты этого логгера (ручками делать это та еще моррока))))
...

а можно примерчик со всем этим делом в студию? (8

Евгений Н.

unread,
Apr 14, 2009, 3:35:20 PM4/14/09
to Dima Pilipenko
Ant можно сравнить с DOS, т.е. пользуешься "командной строкой".

Лично я предпочитаю пользовать мышкой, поэтому работаю на тех языках и
тех решениях, где тебе предоставляется комфорт, где среда разработки
предоставляет тебе из комбо-бокса выбрать сервер и т.д., и среда
разработки сама внесет все изменения в xml билда.

По сути это нонсэнс - разработчики Rich GUI интерфейса - вынуждены
обходиться, в данном случае, "командной строкой".

--
Евгений Н.

Flop Serg

unread,
Apr 14, 2009, 4:21:05 PM4/14/09
to ruF...@googlegroups.com

а можно примерчик со всем этим делом в студию? (8


Ant Task replace

примерно вот так:

 <target name="comment_trace" >
     <replace dir="src">
       <include name="*.as"/>
         <replacefilter token="import com.blabla.logger" value="//import com.blabla.logger"/>
           <replacefilter token="trace" value="//trace"/>
     </replace>
  </target>

Dima Pilipenko

unread,
Apr 14, 2009, 4:24:17 PM4/14/09
to ruF...@googlegroups.com
Мммммм существенно полезно, и интересно...
Спасибо :)

Flop Serg пишет:
> Ant Task replace <http://ant.apache.org/manual/CoreTasks/replace.html>

vadim.k...@gmail.com

unread,
Apr 14, 2009, 4:39:23 PM4/14/09
to Dima Pilipenko

А что на счет Maven. Какие плюсы/минусы ?


--
С уважением,
vadim mailto:vadim.k...@gmail.com

Nox Noctis

unread,
Apr 14, 2009, 5:39:00 PM4/14/09
to ruF...@googlegroups.com
Задача1:
- скопировать набор ресурсов на сервер, исключая файлы определенных
типов и не переписывая лишний раз то, что не менялось (потому что их
очень много, этих ресурсов)
- запаковать набор хмлек из репозитория в swf файлы, их тоже скопировать
- отфильтровать набор исходников-классов, выкинув все то, что в релизной
сборке не нужно
- задать для mxmlc правильные параметры и скомпилить все что нужно
- то, что получилось, тоже выложить на сервер

Все перечисленное делается одним кликом по кнопке "запустить" а панельке
анта в эклипсе. Дальше можно просто сидеть медититровать перед логом
анта или сходить чайку налить.

Задания анту описываются при помощи хмл.
Стандартыне таски (которые покрывают почти все что можно выдумать)
описаны в документации:
http://ant.apache.org/manual/index.html

Причем этот хмл параметрический.
Причем таски могут вызывать друг друга, состоять в зависимостях друг от
друга, плюс можно вызывать сторонние программы, передавай им параметры и
получая то, что они выводят (MacroDef task).

Получается, что силы на то, чтобы что-то куда-то собрать и выложить,
скомпилив, скопировав и запаковав все что нужно, не тратятся вообще.

На то, чтобы понять как писать таски в анте нужен один час времени.
На то, чтобы наловчиться их писать и конфигурировать нужен еще час.
После этого наступает светлое завтра.

Евгений Н. пишет:


> Ant можно сравнить с DOS, т.е. пользуешься "командной строкой".

Чем-чем пользуешься? :)

--
Michael Antipin
______________________________________________________________________
fe...@noregret.org | http://skazkastudio.ru | http://noregret.org

Valentin Simonov

unread,
Apr 14, 2009, 5:51:06 PM4/14/09
to ruF...@googlegroups.com
А что там сейчас с компилированием flash проектов?
Я как-то разбирал этот вопрос — вроде самое простое решение было неким jsfl, чтобы скомпилировать проект во flash ide

doomer samoilOFF

unread,
Apr 14, 2009, 7:12:52 PM4/14/09
to ruF...@googlegroups.com

Об ant уже очень много говорилось в этой группе. Но возможно не было уроков для начинающих. Решил восполнить этот недостаток и на скорую руку написал вот такой пост:

http://blog.samoiloff.com/?p=61


--
Faithfully yours
Samoiloff
_______________
http://blog.samoiloff.com/

Denis Kolyako

unread,
Apr 14, 2009, 9:14:38 PM4/14/09
to ruF...@googlegroups.com
Собственно, версию приложения в
классе версии подменяет :)
Ну и дебаг/релиз.

AlexKviring

unread,
Apr 15, 2009, 11:08:33 AM4/15/09
to ruFlash
Maven мы внедрили у себя и используем для разработки танчиков. Плюсы
начинаются если у вас больше 5 подпроектов в проекте или если над
одним проектом работает большая команда программистов. Главное
правильно maven приготовить - мы например вначале его использовали
совершенно не правильно. Потом опыт пришел. Если кому надо конкретнее
- то отвечу на вопросы.
- Show quoted text -
Kviring Alexey
AlternativaPlatform Team
Mobile: +7 902 83 023 24
Jabber: al...@kviring.com
Site: kviring.com

vadim.k...@gmail.com

unread,
Apr 15, 2009, 11:31:29 AM4/15/09
to AlexKviring
> Если кому надо конкретнее
> - то отвечу на вопросы.
Ну да хотелось бы поконкретнее :
1)В чем основные различия Ant / Maven, кроме того что Maven новее

>>>Плюсы
>>>начинаются если у вас больше 5 подпроектов в проекте или если над
>>>одним проектом работает большая команда программистов.

2)Ant подходит больше для мелких проектов ?

3) если есть примеры однотипных задач приведи плз. для сравнения

Flop Serg

unread,
Apr 15, 2009, 12:19:48 PM4/15/09
to ruF...@googlegroups.com

> 2)Ant подходит больше для мелких проектов ?

Maven не знаю , но у нас большой проект собирается антом
при этом он состоит из много подпроектов
например под-проектик для GUI
он компилится в SWC и в RSL
SWC юзается в каком-то модуле (под-проектик):
- при дебаге как internal-librerry
- при релизе как external-librerry
этот модуль в любой момент можег быть загружен в основное приложение (еще один под-проектик)
тут с для него нужна RSL полученная в самом начале
а еще при всем при этом все эти под-проекты на СВНе лежат и делаются разными людьми
таких зависимостей большая куча ант работает
как говорит alex (главное правильно приготовить)


так что хотелось бы узнать...

AlexKviring

unread,
Apr 15, 2009, 12:26:30 PM4/15/09
to ruFlash
1)В чем основные различия Ant / Maven, кроме того что Maven новее
Их нельзя сравнивать, они выполняют различные функции. Если ANT это по
сути подобие BAT файлов, пусть и на хорошем уровне. То Maven это
система управления проектами. Например если ваш
проект зависит от проекта вашего партнера(а то и нескольких), то Maven
в процессе сборки сам скачает swc файлы ваших коллег, да еще и с
нужными версиями. Сам соберет приложение и запустит тесты, а также
положит вашу swc в центральный репозитарий для дальнейшего
использования другими разработчиками. В процессе сборки Maven может
вызывать ANT скрипты, но это опционально.

Теперь попробую пример:
Есть два человека:
Миша - делает Tanks3D.swc
Антон - делает TanksGUI.swc
Для сборки Tanks.swf требуются две библиотеки Tanks3D.swc и
TanksGUI.swc.
Миша договорился с Антоном, что Антон сделает быстро протип GUI
интерфейса для того чтобы Миша смог внедрять 3D в игру.
Антон по быстрому создает библиотеку TanksGUI-1.0.0.swc.
Миша довольный собирает Tanks.swc с использованием TanksGUI-1.0.0.swc
А Антон работает над версием 2.0.0. При этом он собирает Tanks.swc
именно с версией 2.0.0. для локальных тестов, но баги не мешают Мише
так как он работает с библиотекой первой версии.
Но тут Миша просит Антона внести измения в прототип - Антон вносит и
выпускает версию TanskGUI-1.0.1.swc.
А теперь помножим это на 20 взаимозависимых библиотек и на 5
разработчиков.

Maven и позволяет управлять всем этим. Основная его задача -
управление зависимостями.


2)Ant подходит больше для мелких проектов ?
3) если есть примеры однотипных задач приведи плз. для сравнения

> С уважением,
>  vadim                          mailto:vadim.karpe...@gmail.com

AlexKviring

unread,
Apr 15, 2009, 12:34:21 PM4/15/09
to ruFlash
Ant то конечно работает, будучи языком программирование на нем можно
сделать что угодно. Но каков размер вышего build.xml ?
В Maven это все встроено, включая репозиторий готовых библиотек и
поддержка их версионности.
Например я собираю проект который состоит из множества подпроектов.
Достаточно команды mvn build - и он сам подтянет из репозитория все
swc от которых зависит ваш проект, да еще и с нужными зависимостями.
А если есть проект в состоянии SNAPSHOT, то при каждой сборке вашего
проекта он будет проверен на предмет получения новой версии. А вдруг
автор это проекта поправил баги и выложи новую swc.
И еще раз - Maven не замена ant, это по СУТИ разные вещи.

Vadim

unread,
Apr 15, 2009, 1:04:28 PM4/15/09
to ruF...@googlegroups.com
С антом имею опыт работы - билдаю и деплою проект, при чем как по самбе так и по ssh - если кому-нибудь интересно могу собрать тестовый пример.
Самому же хотелось бы тестовый пример, самый простейший, работы с мавеном - в свое время так руки и не дошли его запинать.

И еще раз - Maven не замена ant, это по СУТИ разные вещи.


--
Vadim Nikolaev
Flash Senior Developer
Sibers Company
ICQ: 274348576
Gmail: Cema...@gmail.com
Skype: CemaprJl
Cell Phone: +7 923 186 6633

Максим Буньков

unread,
Apr 15, 2009, 1:05:27 PM4/15/09
to ruF...@googlegroups.com
Извините. а че везде Пугачеву показывают?
Пугают перестройкой?
:(

lizards

unread,
Apr 15, 2009, 1:12:53 PM4/15/09
to ruF...@googlegroups.com
Поменьше телевизоры смотрите. В интервебах ее как не показывали, так и не показывают, слава Богу.

Daniil Tutubalin

unread,
Apr 15, 2009, 1:25:51 PM4/15/09
to ruF...@googlegroups.com
X-No-Archine: Yes

юбилей

lizards

unread,
Apr 15, 2009, 1:35:06 PM4/15/09
to ruF...@googlegroups.com
Daniil Tutubalin, у вас опечатка: “X-No-Archine” вместо “X-No-Archive”

Dima Pilipenko

unread,
Apr 15, 2009, 1:40:34 PM4/15/09
to ruF...@googlegroups.com
А что это вообще такое?
lizards пишет:

Flop Serg

unread,
Apr 15, 2009, 1:40:44 PM4/15/09
to ruF...@googlegroups.com

С антом имею опыт работы - билдаю и деплою проект, при чем как по самбе так и по ssh - если кому-нибудь интересно могу собрать тестовый пример.

по sftp пожалуйста

Vadim

unread,
Apr 15, 2009, 2:41:14 PM4/15/09
to ruF...@googlegroups.com
вот сделал проектик. 
файлы XML написанные другом один раз кочуют из проекта в проект с небольшими изменениями

итак:

1. для деплоя на scp/sftp необходимо скачать jsch - плагин к анту, 
jar файл который просто кидается туда где лежат плагины для анта, возможно он уже у вас есть. у меня не было

2. лезем в файлы build.properties и local.properties и меняем все нужные пути на те места где расположены у вас СДК, браузер, папка с сорцами, библиотеки и т.д.

3. разберем файлы build_deploy_run.xml и build_deploy_scp_run.xml - они отличаются таргетом deployToSite
таргеты это нечто типа запускаемых функций. в первой строке 
<project name="Ant test SCP deploy" default="launch" basedir="./">
указано что запускается по-умолчанию таргет launch
перейдя на строчку этого таргета
<target name="launch" depends="build">
мы видим что он зависит от другог таргета build - это значит что build запустится перед тем как запустится launch
дальше по цепочке все более-менее должно быть понятно

если возникнут вопросы - могу пояснить

з.ы. вот еще на заметку - очень понравился онлайн-мануал по анту
неплохое описание всех функций и плагинов
 
AntTestProject.zip

Евгений Н.

unread,
Apr 15, 2009, 3:01:29 PM4/15/09
to AlexKviring

Maven особенно популярен среди J2EE-разработчиков, использующих разрозненные
библиотеки, при чеи либа A версии 1.0.1 не совместима с либой Б версии 4.3

Но либы совместимы, если А имеет версию 2.5, а либа Б - версию 4.17

Теперь представим, что в проекте использутся 25 библиотек. Попробуй сложи безглючную
комбинацию, с учетом того, что каждая библиотека обновляется раз в 2 месяца,
вы просто на старте разработки, взяв все новейших версий - получаете неработаюшую
комбинацию.

И что еще сложнее - иногда только спустя месяц или два - по различным JIRA вы можете
догодаться, что у вас проблемы еще впереди, вы просто не "попали" на "правильные" баги,
на которые попали уже другие.

Одно, и не самое идеальное решение - это Maven. Есть репозиторий, где-то в Интернете,
где лежат всевозможные либы. Вам нужен только maven-файл, в котором прописано, какие
либы и каких версий - вам нужно закачать.

Основная проблема - кто составит, сделает такой maven-файл. Даже с учетом мирового сообщества -
это не всегда выполнимо, в J2EE, всегда иметь актуальным и содержащим ссылки на свежие либы,
такой файл.


Поэтому, и это вовсе не фантастические примеры, что разработчики не парятся с мавеном,
а имеют некоторый комплект либ, совместимых между собой. Одна из которых может оказаться
даже 2003 года.

--
Евгений Н.

Message has been deleted

Ivan Dembicki

unread,
Apr 15, 2009, 3:43:44 PM4/15/09
to ruF...@googlegroups.com
Hello ruFlash,

тема закрыта

--
iv
http://www.bezier.ru
http://bezier.googlecode.com

kuril

unread,
Apr 16, 2009, 2:46:14 AM4/16/09
to ruFlash

> Ant то конечно работает, будучи языком программирование на нем можно
> сделать что угодно. Но каков размер вышего build.xml ?
> В Maven это все встроено, включая репозиторий готовых библиотек и
> поддержка их версионности.

Собственно основное отличие maven это описание проэкта на более
высоком уровне, и в этом есть как плюсы так и минусы, собственно как и
описание на более низком уровне также имеет плюсы и минусы свои.
Поэтому при усложнении проэкта и более тонких настройках можно
использовать maven + ant tasks.

> Если ANT это по
> сути подобие BAT файлов, пусть и на хорошем уровне. То Maven это
> система управления проектами. Например если ваш
> проект зависит от проекта вашего партнера(а то и нескольких), то Maven

> в процессе сборки сам скачает swc файлы ваших коллег, да еще и с
> нужными версиями.

Это makefile расширение на основе shell комманд, а ant это расширения
на основе java классов.
Dependecy managment это не совсем система управления проэктами, но в
сложных проэктах одна из главных частей этой системы. Как правильно
было замечено, сравнивать ant и maven не совсем правильно, каждый из
них выполняет свою задачу, но dependecy management можно также
реализовать на ant+Ivy, и это уже можно сравнивать с maven+ant tasks
http://ant.apache.org/ivy/m2comparison.html

И еще, один из недостаков maven - плохая документация, требуется
больше времени для освоения, в отличии от того же Ivy


foreground

unread,
Apr 16, 2009, 3:12:16 AM4/16/09
to ruF...@googlegroups.com
>kuril
Вобщем получается, что для 2-ух, 3-ех человек всё это не обязательно
совсем. И можно обойтись svn-ом и юзать не конфликтующие библиотеки,
чтоб мароки меньше было.
Или я не понимаю большой прелести этой штуки?
Ну понятно, что если хочется заменить какие-то объявления в коде. .
или чего-то там переконвертировать, то можно использовать определенные
команды. Но можно с таким же успехом пользоваться стандартными
методами оболочки.
Вот почему-то складывается впечатление, что с ней мороки больше чем без нее.

kuril

unread,
Apr 16, 2009, 3:40:18 AM4/16/09
to ruFlash

> Ну понятно, что если хочется заменить какие-то объявления в коде. .
> или чего-то там переконвертировать, то можно использовать определенные
> команды. Но можно с таким же успехом пользоваться стандартными
> методами оболочки.
Ключевое слово тут "если хочется" Если мне хочется забить гвоздь, то я
могу взять любой твердый предмет, который мне нравиться и сделать это.
Но если я работаю на стройке и каждый день забиваю гвозди, то
эффективнее это делать с помощью гвоздомета, хотя заморочки по
освоению этого инструмента могут по началу отпугнуть. Так и с
определенными действиями типа заменить, переконвертировать, дело не в
том сколько человек работают над проэктом, а в том какие рутинные
задачи можно поручить скрипту, чтобы программист мог
сконцентрироваться на самом проэкте, а не заниматься тем, что скрипт
может сделать гораздо быстрее и при этом гарантировать отсутствие
таких ошибок, вероятность которых больше, когда делается все руками.

Rost

unread,
Apr 16, 2009, 7:38:08 AM4/16/09
to ruFlash
> Создаю специально тему в которой мы поделимся апостериорными знаниям об ANT.
> Вот главные вопросы:
> 1. Что это такое?
> 2. Для чего он?
> 3. И в каком случае стоит его ставить?
> Всем приятного дня!

Кстати, в osflash тоже обсуждают Ant, вот новый проект "Турецкий
свитер" с кучей Ант-заготовок:

[osflash] Turkish Sweater.. Collection of ant targets & macros for
actionscript production

Turkish Sweater is..

* for medium to bigger Actionscript productions
* collection of ANT macrodefs, targets and templates
* OS independent (used in production on OSX and Windows XP)
* IDE independent (you can run it from your commandline)
* minimal in its dependencies (Java/ANT is needed)
* helping you with third parties Actionscript libraries
* filling the gap between nothing and ANT-Ivy, Maven or similar

http://code.google.com/p/turkish-sweater/

И еще более старый проект Antennae упоминают:

http://antennae.googlecode.com

Рост

http://flash-ripper.com/


Daniil Tutubalin

unread,
Apr 16, 2009, 10:05:02 AM4/16/09
to ruF...@googlegroups.com
> Вобщем получается, что для 2-ух, 3-ех человек всё это не обязательно
> совсем.

Стандартная отмазка, когда лень изучать что-то новое :)

На самом деле от количества человечек ничего не зависит. Он и для 50
необязателен (тем более людей много, можно назначить кого-нить
выполнять рутинные операции ручками :))
Но и для 1 человека будет полезен.

Если компиляция и запуск приложения ограничивается нажатием Ctrl+Enter
в Flash IDE, то ANT бесполезен.
Если же перед компиляцией нужно поменять какие-то значения в разных
файликах, после компиляции файлики в другую папку или на сервер,
запустить ещё какой-нибудь .exe-шник или сделать ещё какие-то
действия, которые выполняются при каждой компиляции - то ANT нужен.

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

foreground

unread,
Apr 16, 2009, 1:22:47 PM4/16/09
to ruF...@googlegroups.com
to All:
Какие плагины к эклипсу вы используете?
Reply all
Reply to author
Forward
0 new messages