User's collector

Внимание!   Данная опция будет доступна только после того, как вы авторизуетесь.
   запомнить меня 
7 февраля 2009

Как самостоятельно скомпилировать Flex 4 SDK из исходных кодов

Многие знают, что, за исключением Flex Chartings (платных компонентов для построения графиков), Adobe Flex SDK распространяется в виде открытых исходных кодов. Это означает, что вы всегда можете:

  • посмотреть логику работы того или иного компонента;
  • исправить найденную в SDK ошибку;
  • послать разработчикам патч, исправляющий эту ошибку;
  • самостоятельно скомпилировать из исходников рабочую версию SDK.

Доступ к исходникам Flex SDK предоставляется посредством системы контроля версий SVN, и вы всегда можете загрузить их, обратившись к trunk-у по следующему URL-адресу.

Вы спросите: «Для чего мне это нужно, если можно скачать одну из уже скомпилированных сборок Flex 4 SDK с сайта Adobe, и не придется проделывать никаких дополнительных манипуляций?». Самостоятельная сборка SDK на основе рабочей копии, полученной из системы контроля версий, обладает следующими преимуществами:

  • сюда относится весь предыдущий список возможностей;
  • на вашем компьютере всегда будет самая свежая сборка Flex 4 SDK;
  • для этого вам не нужно будет каждый раз заново скачивать весь архив со сборкой — достаточно будет только обновить измененные разработчиками исходные файлы и перекомпилировать SDK. Это особенно критично, если вдруг вы окажетесь в таком месте, где в наличии есть только медленное и нестабильное соединение с сетью;
  • вы сможете отслеживать и быть в курсе того, над какими элементами трудились в последнее время разработчики Flex 4 SDK.

Однако не нужно забывать о том, что в trunk-е может оказаться нерабочая версия SDK. В этом случае вам нужно будет откатиться на одну из предыдущих ревизий. Немного позже я объясню, как это сделать. Для начала наладим весь процесс сборки. Т.к. я все еще являюсь замшелым «виндузятником» и никак не могу пересесть на другую операционную систему, то весь описываемый процесс будет ориентирован на пользователей Windows. Думаю, пользователи других операционных систем смогут по аналогии с этой статьей настроить сборку на своих компьютерах.

Первым делом нам нужен хороший SVN-клиент, который позволит загрузить исходники из хранилища. Если у вас уже установлена подобная программа, вы можете пропустить этот шаг. Я уже достаточно давно в качестве подобного клиента под Windows использую TortoiseSVN, который встраивается в оболочку операционной системы и позволяет работать с файлами и папками в Проводнике при помощи контекстного меню, появляющегося по щелчку правой кнопкой мыши. Скачиваем и устанавливаем программу. Обратите внимание, что на странице загрузки программы есть множество языковых пакетов (в том числе и русский), позволяющих локализовать язык интерфейса программы. Далее перезагружаем ОС.

Создаем папку, в которой будет располагаться Flex 4 SDK. Я рекомендую создать ее в корне логического диска или файловой системы, а из названия папки исключить пробелы. Например, создать папку c:/flex_sdk_4. Это обусловлено тем, что в таком случае будет удобнее работать с SDK через командную строку.

Щелкаем правой клавишей мыши по папке и в контекстном меню выбираем пункт TortoiseSVNSVN Checkout… (SVN Извлечь…). В появившемся диалоговом окне указываем адрес до папки trunk Flex 4 SDK, глубину охвата при извлечении указываем Fully recursive (Полностью, рекурсивно) и выбираем пункт HEAD revision (HEAD-ревизия) для извлечения. Нажимаем кнопку OK и идем пить кофе, пока будут извлекаться исходные коды Flex SDK.

Теперь нам необходимо установить и настроить Apache Ant (страничка на Википедии) — очень полезный инструмент, позволяющий разработчикам автоматизировать различные процессы во время сборки и тестирования своих приложений. В свою очередь, разработчики Adobe Flex SDK автоматизировали процесс сборки Flex 4 SDK при помощи этого инструмента. Загружаем архив с программой и распаковываем его содержимое в папку C:\Program Files\Ant\. Теперь прописываем путь к папке bin в переменную среды Path. Для этого щелкаем правой клавишей по иконке Мой компьютер и в появившемся меню выбираем пункт Свойства. Переходим на вкладку Дополнительно и нажимаем кнопку Переменные среды. В списке Системные переменные так же через точку с запятой добавляем путь C:\Program Files\Ant\bin к переменной Path. Нажимаем, где нужно, кнопки Применить и OK. Перезагружаем Windows.

Компиляторы Flex SDK представляют собой программы, которые компилируются и работают в среде Java. Поэтому нам нужно установить на свой компьютер JDK. Для этого идем на сайт компании Sun и скачиваем последнюю версию Java SE Development Kit. На момент написания статьи такой версией была JDK SE 6.12. После окончания загрузки устанавливаем среду. Во время всей процедуры инсталляции можно руководствоваться действиями мастера установки по умолчанию. После завершения установки, снова открываем окно редактирования переменных среды и добавляем переменную JAVA_HOME в список системных переменных, а ее значением устанавливаем строку с путем к папке JDK: C:\Program Files\Java\jdk1.6.0_12.

Остался последний этап подготовки системы к компиляции Flex 4 SDK. Дело в том, что во время сборки Flex 4 SDK производится выполнение нескольких UNIX-овых shell-скриптов, которые, естественно, не будут работать под Windows, однако без проблем выполнятся под Mac OS и Linux. Но этот пункт тоже решаем. В корневой папке Flex 4 SDK находится файл README.txt, который содержит строку «This version of Flex is officially built in Cygwin on Windows XP Pro SP2». Т.е. разработчики в Adobe так же собирают SDK под Windows, единственной тонкостью является наличие в системе установленного Cygwin (страничка на Википедии) — эмулятора командной строки UNIX. Устанавливаем Cygwin, воспользовавшись для этой цели специальным загрузчиком и инсталлятором. Для установки указываем папку, находящуюся в корне логического диска. Путь к этой папке не должен содержать пробелов. Можно воспользоваться путем, предлагаемым по умолчанию: C:\cygwin\.

После установки запускаем консоль Cygwin, переходим в папку с исходными кодами Flex 4 SDK и запускаем сборку при помощи Apache Ant:

CODE:
  1. Yuriy@Yuriy-laptop ~
  2. $ cd /cygdrive/c/flex_sdk_4/
  3.  
  4. Yuriy@Yuriy-laptop /cygdrive/c/flex_sdk_4
  5. $ ant

Осталось дождаться окончания билда и собранная своими руками копия Flex 4 SDK готова к работе!

Чтобы синхронизировать свою рабочую копию Flex 4 SDK с теми изменениями, которые внесли в trunk разработчики, необходимо выбрать пункт SVN Update (Обновить) в контекстном меню папки с рабочей копией, дождаться завершения процесса обновления и пересобрать проект. Таким образом вы всегда будете иметь на своем компьютере самую свежую версию Flex 4 SDK.

Теперь пару слов о том, что нужно делать, если вдруг вы обновились до нестабильной ревизии в хранилище Flex 4 SDK. Щелкаем правой клавишей по папке с локальной рабочей копией Flex 4 SDK и в контекстном меню выбираем пункт TortoiseSVNUpdate to revision… (Обновить до ревизии…), в появившемся окне переключитесь на пункт Revision (Ревизия), введите номер одной из предыдущих стабильных ревизий в текстовое поле и нажмите кнопку OK. После завершения обновления пересоберите Flex 4 SDK.

На этом статья закончена. Желаю вам удачных экспериментов с новой версией Flex SDK!

Теги:


22 комментария к записи:

develar [ 8 февраля , 2009 в 00:50 ]

Насколько я знаю, ты пользуешься IntelliJ IDEA. У тебя работает отладка с твоей собственной сборкой 4 — можешь ли ты смотреть содержимое объектов на точке останова?

develar [ 8 февраля , 2009 в 00:53 ]

И по поводу "пользователи других операционных систем смогут по аналогии с этой статьей настроить сборку на своих компьютерах" — у нас все проще и укладывается в одну строчку ;)

Юрий Яровой [ 8 февраля , 2009 в 09:24 ]

Насколько я знаю, ты пользуешься IntelliJ IDEA. У тебя работает отладка с твоей собственной сборкой 4 — можешь ли ты смотреть содержимое объектов на точке останова?

К сожалению, перед отъездом из Москвы я не сделал чекаут Flex 4 SDK на ноутбук. А сейчас я нахожусь в месте «где в наличии есть только медленное и нестабильное соединение с сетью». :) Так что я даже не знаю, как скоро у меня получится извлечь исходники SDK из хранилища. Поэтому не могу протестировать сейчас, как IDEA работает с новой версией SDK.

А экспериментировал с новыми возможностями Gumbo я во FlashDevelop. Там очень быстро можно создать тестовый проект. В основном я компилировал примеры с blog.FlexExamples.com.

Anton Volkov [ 8 февраля , 2009 в 18:54 ]

Для работающих в Eclipse для SVN имеет смысл поставить Subclipse: http://subclipse.tigris.org

Юрий Яровой [ 8 февраля , 2009 в 20:45 ]

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

Anton Volkov [ 8 февраля , 2009 в 23:16 ]

Ошибаешься, он как раз постоянно развивается. Новые версии выходят каждые 1-2 месяца.
Последняя фича - графическая схема бранчей и мерджей между ними.
Для коллективной разработки - незаменимая вещь.
Tortoise - тоже не плох (разработчик тот же что и у Subclipse), но более "казуален" что ли :)
Мы его ставим дизайнерам и менеджерам.

Юрий Яровой [ 10 февраля , 2009 в 07:42 ]

2develar: Скачал, скомпилировал Flex 4 SDK и подключил ее к IDEA. Почему-то не могу скомпилировать проект только средствами IDEA. Выдает следующую ошибку:

CODE:
  1. Error: java.io.IOException: The pipe being closed

И ничего более продробного.

develar [ 10 февраля , 2009 в 14:58 ]

А это EAP версия, билд 9728? У меня ничего похожего нет — flexmojos создает flex-config для IDEA и все нормально компилируется. Наверняка ошибочный flex temp config — IDEA то вряд ли может создать сама для не hello world приложения конфиг.

Модест Петрович Вяземский [ 10 февраля , 2009 в 21:28 ]

Если в доме нету денег —
Привяжите к попе веник.

develar [ 15 февраля , 2009 в 16:43 ]

о pipe: http://www.jetbrains.net/jira/browse/IDEA-21939 там есть какие-то нюансы :)

Юрий Яровой [ 18 февраля , 2009 в 12:14 ]

о pipe: http://www.jetbrains.net/jira/browse/IDEA-21939 там есть какие-то нюансы :)

Т.е. проблема в том, что нужно запускать Make перед Run?

develar [ 18 февраля , 2009 в 12:26 ]

Да, и перед этим закрыть IDEA и вручную (так как Apply кнопка глючит, я еще не завел багу об этом) отредактировать iml файлы - настроив для фасета (тут главное указать libraryName)

Ну а для нативного проекта убедиться, что все настройки верны, опять же (тут у меня опыта нет, точный config не подскажу, я использую maven) посмотреть iml - применяются ли настройки.

develar [ 18 февраля , 2009 в 12:28 ]

код не экранируется ;) ладно, не суть.

Юрий Яровой [ 18 февраля , 2009 в 12:54 ]

Хм, что за проблемы с листингами кода? Попробуй написать листинг, выделить его и нажать на кнопку code. Тэги кодов должны быть в квадратных скобках, закрывающий тэг должен иметь слэш.

develar [ 18 февраля , 2009 в 12:57 ]
CODE:

угловые скобки не экранируются
вверху должно быть

c <facet type="flex" name="Flex">
<configuration home="$MODULE_DIR$/../../../../../shared/flex_sdk_4.0.0.4932" libraryName="gumbo" />
< /facet >

Юрий Яровой [ 18 февраля , 2009 в 13:06 ]

Да, сейчас немного странная логика у плагина расцветки - он будет нормально обрабатывать листинги с XML-тэгами только в том случае, если открывающая угловая скобка < отделена от содержимого тэга пробелом. В обратном случае он воспринимает этот текст как обычную HTML-разметку.

Сегодня вечером это исправим.

Юрий Яровой [ 18 февраля , 2009 в 15:25 ]

Не могу скомпилировать проект на ноутбуке. Запускаю Make, но фактически никакой сборки не происходит. После этого можно запускать проект при помощи Run, ошибки с Pipe не происходит, но запускается старая версия.

develar [ 18 февраля , 2009 в 15:39 ]

Касательно фасетов я разобрался, - там необходимо в любом случае ставить Java SDK как Project SDK + правильная настройка модулей - в 10 069 по-прежнему не работает, зато в публичной 8.1 все отлично.
А ты используешь ведь нативный проект - flex module? Там то все должно быть как они и сказали - "will be probably more user friendly if you use Flex module instead of Flex Facet". Проверь, включено ли Use IDE Builder, и какой output file name. С 3.2.0.3958 Flex SDK нативный проект IDEA у меня собирается нормально. Во время make попробуй успеть открыть появляющееся окно messages - там лог пишется.

Юрий Яровой [ 18 февраля , 2009 в 21:13 ]

Там то все должно быть как они и сказали - "will be probably more user friendly if you use Flex module instead of Flex Facet".

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

develar [ 20 февраля , 2009 в 17:05 ]

Чтобы ваша сборка SDK работала с IntelliJ IDEA — http://www.jetbrains.net/jira/browse/IDEADEV-34334 — вы должны установить build.number (подробности по ссылке).

[...] если вы используете самостоятельную сборку Flex 4 SDK и у вас не компилируется SWF-файл приложения, то это [...]

alex [ 10 мая , 2009 в 00:59 ]

пользовался билдером, перехожу на eclipse, скомпилил Flex 4 SDK, что-то не видет его eclipse 3.4, может что-то не так делаю...В свойствах add Flex sdk, указываю адрес и нифига..., подскажите плиз!
Спасибо.

Оставьте свой комментарий:

Имя: *
* — обязательно для заполнения
Электропочта: *
Сайт:
Сообщение *
Коментировать
Коментировать