вторник, 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 комментария:

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

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

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

    ОтветитьУдалить
  2. что бы 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 не выложены.

    ОтветитьУдалить