Pull to refresh

Настройка сборки Flex 4.14 проекта с использованием flexmojos 7.*

Reading time 3 min
Views 3.7K
Исходные данные:
  • Flex проект 100k+ строк
  • 6 модулей swc, собираются в один swf
  • FlexSDK 4.9.* + flexmojos 4.2-beta

Было принято решение, что проект пора обновить и перейти на последний (на момент написания статьи) FlexSDK 4.14.

Хотел бы сразу заметить, что варианты кроме Flexmojos не рассматривались, так как проект уже работал на нем и полностью новое решение не интересовало.

Итак, для начала надо было определиться, какую версию использовать.
Список версий на сайте плагина содержал версии: 6 (немного документации) и 7 (пустая страница с документацией).
Также на странице github/flexmojos есть список бранчей, где можно было посмотреть когда какой бранч был обновлен.

Не смотря на то, что последний бранч, помеченный «стабильным» был flexmojos-6.x было принято решение использовать flexmojos-7.x, так как работа над ним ведется активно в отличии от предыдущих версий.

Настройка тестового проекта


Шаг №1


Установка FlexSDK

На сайте apache.flex выбираем SDK, качаем, ставим.

Шаг №2


Мавенизация FlexSDK

Делается при помощи flex-utilites
> git clone https://git-wip-us.apache.org/repos/asf/flex-utilities.git
> cd mavenizer
> mvn package

Пошаговых инструкций было найдено много, но почти все они были старые и шаги описанные в них не работали. Наиболее свежая инструкция была найдена на сайте ApacheFlex\SDKUtilites. Один из шагов внутри Building the Mavenizer был указан Checkout the «develop» branch. Делать этого не надо. Внутри develop branch нет .pom файлов и собиратся там нечего.

Далее сделать все, что указано в разделе Using the Mavenizer

Важно
Правильная команда
> java -jar [home]/core/target/flex-sdk-converter-1.0.0-SNAPSHOT.jar "[sdkhome]" "[fdktarget]"

Неправильная команда
> java -cp target/flex-sdk-converter-1.0.jar SDKGenerator "{sdkhome}" "{fdktarget}"

Почти все статьи содержали команды в которых использовался путь /target (без /core) и SDKGenerator — это все неверно.

В результате из папки с мавенизированным SDK файлы копируются в локальный maven репозиторий.
> mv {fdktarget} {mavenpath}/.m2/repository

Шаг №3


Настройка проекта

Для начала создадим пустой проект
> mvn archetype:generate -DarchetypeGroupId=net.flexmojos.oss -DarchetypeArtifactId=flexmojos-archetypes-application -DarchetypeVersion=7.0.1

Откроем pom.xml и поменяем версии не нужные нам.
В нескольких местах (версию можно проверить в maven репозитории)
<version>4.14.1.20150325</version>

Обновим версию playerglobal
<groupId>com.adobe.flash.framework</groupId>
<artifactId>playerglobal</artifactId>
<version>16.0</version>

Добавим репозитории для FlexUnit
    <repositories>
      <repository>
         <id>flex-mojos-repository</id>
         <url>http://oss.sonatype.org/content/repositories/releases</url>
         <releases>
            <enabled>true</enabled>
         </releases>
         <snapshots>
            <enabled>false</enabled>
         </snapshots>
      </repository>
   </repositories>
   <pluginRepositories>
      <pluginRepository>
         <id>flex-mojos-plugin-repository</id>
         <url>http://oss.sonatype.org/content/repositories/releases</url>
         <releases>
            <enabled>true</enabled>
         </releases>
         <snapshots>
            <enabled>false</enabled>
         </snapshots>
      </pluginRepository>
   </pluginRepositories>

Проверим работает ли компиляция:
> mvn clean compile

Запустим .swf из папки /target. Должно отобразиться Hello World!

Готово.

Пример работающего проекта содержащего в себе сборку библиотеки swc и приложения можно посмотреть на github/flex-maven-demo.

Полезные ссылки:
  1. habrahabr.ru/post/178997 — сравнение нескольких вариантов сборки в maven
  2. flexmojos.atlassian.net/wiki/display/FLEXMOJOS/Home — wiki по flexmojos
Tags:
Hubs:
+5
Comments 2
Comments Comments 2

Articles