Исходные данные:
Было принято решение, что проект пора обновить и перейти на последний (на момент написания статьи) FlexSDK 4.14.
Хотел бы сразу заметить, что варианты кроме Flexmojos не рассматривались, так как проект уже работал на нем и полностью новое решение не интересовало.
Итак, для начала надо было определиться, какую версию использовать.
Список версий на сайте плагина содержал версии: 6 (немного документации) и 7 (пустая страница с документацией).
Также на странице github/flexmojos есть список бранчей, где можно было посмотреть когда какой бранч был обновлен.
Не смотря на то, что последний бранч, помеченный «стабильным» был flexmojos-6.x было принято решение использовать flexmojos-7.x, так как работа над ним ведется активно в отличии от предыдущих версий.
На сайте apache.flex выбираем SDK, качаем, ставим.
Делается при помощи flex-utilites
Пошаговых инструкций было найдено много, но почти все они были старые и шаги описанные в них не работали. Наиболее свежая инструкция была найдена на сайте ApacheFlex\SDKUtilites. Один из шагов внутри Building the Mavenizer был указан Checkout the «develop» branch. Делать этого не надо. Внутри develop branch нет .pom файлов и собиратся там нечего.
Далее сделать все, что указано в разделе Using the Mavenizer
Важно
Правильная команда
Неправильная команда
Почти все статьи содержали команды в которых использовался путь /target (без /core) и SDKGenerator — это все неверно.
В результате из папки с мавенизированным SDK файлы копируются в локальный maven репозиторий.
Для начала создадим пустой проект
Откроем pom.xml и поменяем версии не нужные нам.
В нескольких местах (версию можно проверить в maven репозитории)
Обновим версию playerglobal
Добавим репозитории для FlexUnit
Проверим работает ли компиляция:
Запустим .swf из папки /target. Должно отобразиться Hello World!
Готово.
Пример работающего проекта содержащего в себе сборку библиотеки swc и приложения можно посмотреть на github/flex-maven-demo.
Полезные ссылки:
- 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.
Полезные ссылки:
- habrahabr.ru/post/178997 — сравнение нескольких вариантов сборки в maven
- flexmojos.atlassian.net/wiki/display/FLEXMOJOS/Home — wiki по flexmojos