вторник, 20 января 2009 г.

Генерация flex-проекта с помощью Maven

До недавнего времени, создавать flex-проекты мне приходилось вручную. Откровенно говоря этот процесс меня не очень радовал, в результате поисков был найден maven-плагин Maven Flex Plugin.

Этот плагин помимо типичных задач компиляции swc и swf-файлов, которые способны выполнять и ряд других плагинов (например Flex-mojos), также позволяет выполнять очень ценную задачу flex:eclipse - подобие eclipse:eclipse, привычного, думаю для всех, способа геренации java-проектов под Eclipse. Для его настройки, в pom-файле необходимо зарегистрировать плагин-репозитарий:

    <pluginRepositories>
<pluginRepository>
<id>flex-plugin-repo</id>
<name>Flex Plugin</name>
<url>http://maven.servebox.org/repository/</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>

указать сам плагин:

    <plugin>
<groupId>org.servebox.flex</groupId>
<artifactId>flex-plugin</artifactId>
<extensions>true</extensions>
<inherited>true</inherited>
</plugin>

Теперь можно выполнять: mvn flex:eclipse

Не забудьте определить переменную M2_REPO указывающую на ваш репозитарий во Flex Builder-е, на вкладке Window > Preferences > General > Workspace > Linked Resources

Плагин также регистрирует в создаваемых пректах зависимости на другие swc-библиотеки. Таким образом его достаточно запустить на уровне головного pom-файла, чтобы сгенерировать все дочерние проекты. Хочу отметить, что планиг отлично уживается в одном проекте с Flex-mojos.

2 комментария:

agahov комментирует...

Да интересное решение проблемы. Думаю буду его использовать. Нужно проверить работает ли он для air проектов.

На данный момент в мире существует три различных flex maven plugin. Интересно почему люди не объединяться и не сделают один хороший плагин.
Но это риторический вопрос.

Спасибо за находку!

agahov комментирует...

что бы fb не ругался на bundle, нужно добавить зависимость:

[dependency]
[groupId]com.adobe.flex.locales.en_US[/groupId]
[artifactId]framework_rb[/artifactId]
[version>3.2.0.3958[/version]
[type>swc[/type]
[/dependency]

и serverBox репозиторий:
http://maven.servebox.org/repository

Это решение становиться слишком громостким((

тем более что bundle для visualization на servebox не выложены.