Что Хорошего В Флексмохос? Flex-Разработка В Intellij Idea С Использованием Maven

Статья написана более полугода назад. 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, ничего настраивать не нужно).

    условная компиляция также поддерживается, но ее текущая реализация такова, что токены не проверяются, поэтому отсутствие определения еще не проверяется — только на уровне синтаксиса.

Собственно, что еще нам нужно от IDE? IntelliJ IDEA на данный момент является единственной средой, которая находится на этом уровне — просто откройте POM (я вру только насчет первоначальной компиляции mvn -DconfigurationReport=true, но это также будет удалено в финальной версии Maia (вероятно, к сентябрьскому EAP )), поддерживает гибкую разработку.

Обратите внимание, что поддержка приложений не находится на уровне 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, кроме того, будучи плагином для maven, он имеет большое количество устаревших вкусностей — maven, будучи декларативной системой сборки, полностью себя оправдывает — за полгода мы не разочаровались в выборе.

Обновление комментариев Про 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 #ИТ-компании #ИТ-компании

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.