Статья написана более полугода назад. Flex-разработка в IntelliJ IDEA с использованием maven — это был обзор и он был написан в самом начале использования вышеперечисленных инструментов.
Теперь хотелось бы подвести итог и рассмотреть все подробнее — в этой статье будет дан обзор текущей ситуации и тех плюшек flexmojos, аналогов которым вы больше нигде не найдете.
Текущая ситуация.
Что изменилось Если полгода назад только маньяки могли настроить среду (под средой я имею в виду не только IntelliJ IDEA, а всю среду в целом, включая прокси-сервер репозитория), чтобы она не мешала работе компании и не заставляла рядовые сотрудники вздыхают о спокойных временах, теперь:
- Нет необходимости в Flex SDK .
IntelliJ IDEA сама создаст всё необходимое — отладка и компиляция будут работать.
AIR SDK пока не поддерживается из-за проблем с лицензированием.
Решаем этот вопрос с Марвином - после стандартизации координат артефактов (со стороны jetbrains уже все решено) нужно будет сделать примерно то же, что и с Sun JDK на Linux - опубликовать самостоятельно в свой репозиторий .
Таким образом, вам не понадобится отдельный сервер синхронизации (это важно, если вы часто обновляете SDK и накатываете на него свои патчи).
- Полная компиляция в IDE/консоли без дополнительной настройки.
.
flexmojos создает полноценную конфигурацию для IntelliJ IDEA — такое прямое маппинг и возможность дешево получить сложный flex-конфиг есть только в flexmojos (В flexmojos нет инкрементной компиляции, Марвин в ответ на мой вопрос предложил мне выпустить сам - пока перспектива появления этой возможности туманна).
Таким образом, после mvn compile -DconfigurationReport=true можно без проблем запустить make в IntelliJ IDEA (только не используйте нативный fcsh — в алгоритме расчета контрольной суммы конфига есть критическая ошибка) develar.livejournal.com/77034.html ).
В течение следующих нескольких недель flexmojos будет создавать конфигурацию для IDEA даже без первоначальной сборки.
- Проверка работы без настройки .
пространство имен пакет ресурсов, локаль — все это будет работать без какой-либо настройки (данная ссылка носит ознакомительный характер, повторюсь — просто откройте POM, ничего настраивать не нужно).
условная компиляция также поддерживается, но ее текущая реализация такова, что токены не проверяются, поэтому отсутствие определения еще не проверяется — только на уровне синтаксиса.
Обратите внимание, что поддержка приложений не находится на уровне helloworld. Подробная статья о работе в среде будет позже (поскольку текущий рабочий процесс будет упрощен), а пока лишь отмечу, что проект удобно хранить в формате каталога, игнорируя *.
iml, .
idea/libraries. .
Таким образом, от IDE нам теперь нужно только одно — поддержка flexunit. Пока все печально.
Но этот вопрос уже обсуждался и будет решен в ближайший месяц (от jetbrains www.jetbrains.net/jira/browse/IDEADEV-39280 , а со стороны сообщества flexmojos был улучшен тестовый моджо, позволяющий выгружать дамп конфигурации).
булочки флексмохос
- внешние нагрузки .
У нас есть приложение.
Он доступен в двух версиях — веб-версии и настольной (AIR).
Приложение загружается, а оболочка, модуль стиля, загружается во время выполнения.
Мы хотим оптимизировать скин для этих двух версий — load-externs. Можете ли вы представить, что нужно, чтобы сделать это без flexmojos? В приложении POM устанавливаем ссылкаОтчет к истине, и указать зависимость в скине из артефакта с координатами приложения, но заменив тип на xml и классификатор на link-report. Что может быть проще?
- ресурсные модули/библиотеки .
Чтобы их получить, вам просто нужно указать runtimeLocales. И для приложения вы получите модули, и для библиотеки библиотеки.
Замечу, что это реализовано как одна большая проблема( develar.livejournal.com/71672.html , develar.livejournal.com/70325.html ), но подходит большинству пользователей (Если вы работаете с цепочкой локалей, то наверняка наступите на грабли, но о таких проблемах никто не писал ;))
ru_US
- РДФ .
Это далеко не убийственная фича, но просто приятная (однако эта фича зачастую бесполезна, поскольку для flex POM наследование в большинстве случаев невозможно, а агрегация строит только ссылки на проекты).
- Манифесты .
Чтобы включить манифест в библиотеку, необходимо указать пространство имен + includeNamespace (дубликат URI).
После этого вы почувствуете убогость компилятора не только с точки зрения скорости, но и архитектуры - включение манифеста _все_ пользователями (я был удивлён, что Марвин тоже считает поведение компилятора ошибочным) считается актом поддержки пространства имен в MXML, а не акт включения.
В результате мы либо имеем циклическую ошибку ссылки, либо вынуждены постоянно доказывать компилятору, что нам нужно включить определенный класс (например, его может не быть).
ссылки на определенную утилиту в самой библиотеке).
флексмохос предоставляет вам мощный и удобный синтаксис — вам не нужно указывать ни пространство имен, ни includeNamespace; Вам даже не нужен файл манифеста.
Если вы используете mate и хотите иметь пространство имен для своих EventMaps, все, что вам нужно написать, это
http://example.com/2009 **.
И все, все EventMap будут находиться в указанном пространстве имен, при этом классы, не включенные в манифест и не имеющие ссылок на себя, также будут включены в библиотеку.карты.
*
- ВОЙНА .
Если вы укажете свое приложение в зависимостях WAR и привяжете target copy-flex-resources, то flexmojos скопирует само приложение и все, что с ним связано (модули, rsls).
копировать гибкие ресурсы копирование гибких ресурсов
Обновление комментариев Про flexmojos ничего не сказано, потому что об этом говорилось в первой части, на которую была дана ссылка, самая важная ссылка для понимания того, что flexmojos — это плагин системы сборки maven для поддержки flex и зачем нам maven — riapriority.com/blogs/agahov.php/2007/11/23/maven .
А насчет «Я с удивлением узнал, что Идею нельзя использовать без Maven :), это очень далеко от истины» — пост написал человек, который «верит» в CI и посвящён пользе соответствующего инструмент для сборки.
IntelliJ IDEA вполне может скомпилировать проект и настроить нетривиальным образом с помощью специального конфиг-файла, но мы вроде как инженеры (пункт прототипов опускаю, однако, в связи с понятием архетипов, это вопрос тоже снят)? Теги: #intellij idea #idea #maven #flex #Flex #ActionScript #As #flex Builder #flash Builder #flexmojos #ИТ-компании #ИТ-компании
-
Прецизионные Финансы
19 Oct, 24 -
Языковая Механика Профилирования Памяти
19 Oct, 24 -
Я Создам Свой Собственный Твиттер...
19 Oct, 24 -
Нокаут На Шахматной Доске Или Мат На Ринге
19 Oct, 24 -
Подкаст «Я Сказал На Каннада» (№ 18)
19 Oct, 24 -
Nx Bootcamp Стартует В Октябре
19 Oct, 24