Skip to main content

maven

Глава 1. Maven и Flexmojos, интро.

Posted in

Что такое Maven.

В узком смысле Maven -- это инструмент для сборки проектов. На вход подаем исходные коды и ресурсы, на выходе получаем артефакты: программы, модули, библиотеки, документацию и т.д.

Вы спросите, а зачем это нужно, если мы тоже самое делаем в IDE? Разница в том, что в IDE мы делаем это вручную, а Maven делает это автоматически. То есть, он может делать это без участия программиста, и вообще без участия человека :) В IDE мы делаем это для себя, обычно в рамках цикла write-compile-debug, в рамках разработки и отладки вышеупомянутых продуктов (дебаг-версия). Maven делает это для поставки конечным пользователям (релиз-версия).

В более широком смысле Maven -- это инструмент управления проектом. Он делает такие вещи:

  • описывает объектную модель проекта (pom -- project object model);
  • определяет цикл жизни проекта (lifecycle), состоящий из стандартизированных целей (goals), например: compile, test, package, install и т.д.;
  • управляет зависимостями между артефактами (модулями, библиотеками), необходимыми для сборки проекта;

Часть 10. Уменьшаем размер swf-файла подключая flex framework как RSL.

Posted in

Проект можно скачать тут.

Немного теории

Работа с RSL подразумевает две довольно разные задачи. Одна задача -- собрать проект так, чтобы flex framework подключался как RSL, а не входил в состав swf-файла. Другая задача -- создание собственных RSL библиотек и их подключение. Первая задача проще, ибо библиотеки уже есть. С нее и начнем, а другую задачу рассмотрим позже :)

Итак, RSL суть Runtime Shared Library. Из названия ясно, что это библиотека (library), которая загружается и линкуется во время исполнения (runtime) вместо того, чтобы статически линковаться при компиляции. И она предназначена для совместного использования одновременно несколькими разными приложениями (shared). Впрочем, последнее опционально, можно обойтись и одним приложением :)

RSL бывают трех видов: Standard RSLs, Cross-domain RSLs, Framework RSLs. Но я бы сказал, что двух видов.

Framework RSLs сделаны и подписаны адобом, в них входят классы, составляющие flex framework. И они существуют в виде файлов с расширением swz. Что значит "подписаны"? Это значит, что данные swz файлы подписаны адобовским сертификатом, и поэтому флеш-плеер умеет отличить их от подделки. К примеру, если вы сами скомпилируете флекс фреймворк (со своими модификациями или без), то вы не сможете подсунить это флэш плееру как swz файл (но можете подсунуть как Standard RSL). Взять эти swz негде, кроме как у адоба.

В отличие от них пользовательские RSLs (Standard и Cross-domain) создаются самим разработчиком и существуют в виде swf файлов. Они должны быть на том же домене, что и приложения, их использующие (про кросс-доменные RSL пока говорить не будем).

Фишка Framework RSL в том, что они кешируются независимо от конкретного приложения. Если пользователь где-то загружал какое-то флэш приложение (не обязательно ваше) и с ним загружал такие же swz, какие использует ваше приложение, то эти swz есть у пользователя в кеше. И теперь, когда пользователь добрался до вашего приложения, эти swz не будут грузиться еще раз. И это очень хорошо, поэтому что это позволяет сильно уменьшить размер swf файла и сильно ускорить его загрузку. Чем, собственно, мы сейчас и займемся.

Часть 9. AIR приложение на стандартном Flexmojos.

Posted in

Не все могут использовать форк @develar, поэтому я покажу использование и стандартного flexmojos. Разница не столь велика.

Вот модификации, которые нужно сделать в пом:

  • Поменять репозиторий на http://repository.sonatype.org/content/groups/flexgroup.
  • Поменять flexmojos.version на 3.7.1
  • Поменять fdk.version на 4.1.0.16248 (версии 4.1.0.15885 нет в стандартном репозитории).
  • Поменять версию артефакта adt на 4.0.0.13555. Когда я говорил, что его нет в стандартном репозитории, я ошибался. Есть, но тоже другой версии.
  • Добавить зависимость от com.adobe.flex.framework:flex-framework (в форке develar ее не нужно было указывать, а здесь нужно).
  • Чтобы добавить в инсталятор иконки и другие ресурсы их нужно явно указать в блоке includeFileSets (в форке develar это не нужно)

Часть 8. Собираем AIR приложение.

Posted in

Ну давайте разберемся как с помощью flexmojos собирать AIR приложение.

UPDATED

  • Изменился pom-файл.
  • Полностью переписан раздел про упаковку AIR.

UPDATED 2

  • Кое-что исправлено во flexmojos, и подключив версию 3.8-de0 мы, наконец, получаем решение, работающее сразу из коробки :)
  • Я добавил в проект иконки для AIR-приложения, чтобы показать, как включать в инсталлятор ресурсы.

Проект можно скачать тут.

Использование Flexmojos

Posted in

Тут собраны статьи по flexmojos. Над ними я буду еще работать, чтобы сделать полноценное руководство по этому предмету.

Где-то что-то устарело, где-то что-то неправильно. Где-то подразумеваются некие настройки в суперпом или в .m2/settings.xml В итоге не все, что описано в статьях работает из коробки, а требует дополнительных плясок с бубном.

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

Maven, настроил и забыл

Posted in

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

Удобный тул не мешает работать. Идельный тул вообще не заметен. Одажды настроил и забыл про него.

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

Сейчас мы сделаем еще один шаг к просветлению :)

Скринкаст N 01. Небольшой flex-проект с Intellij IDEA, Maven/Flexmojos, Mate.

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

Видео на vimeo.com, на rutracker.org

Длительность 27 минут, размер 36 Мб, разрешение 1024x768px

Видеокодек H264

Аудиокодек Vorbis

Касательно всех вышеперечисленных параметров готов выслушать ваши пожелания и рекомендации.

Syndicate content