« Генерация html wrapper c помощью flex-mojosFlex Mojos - A Maven Flex Plugin »

Сборка простого flex приложения с помощью Flex Mojos

Начальные условия

установленная java jdk 5 или выше.
переменная окружения JAVA_HOME
установленный maven.

Стандартная для maven структура проекта

project-name/pom.xml………………. конфигурационный файл сборки проекта.
project-name/src
project-name/src/main/
project-name/src/main/flex…………. код flex приложения
project-name/src/test
project-name/src/test/flex…………. тесты flex приложения
project-name/src/main/flex/Main.mxml

Структура pom.xml

pom собирающий flex приложение:

XML:

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0" >
 
 
    <parent>
         <groupId>info.rvin.mojo</groupId>
         <artifactId>flex-super-pom</artifactId>
         <version>1.0</version>
    </parent>
 
    <modelVersion>4.0.0</modelVersion>
 
    <groupId>com.mydomain.mypackage</groupId>
    <artifactId>myArtifactId</artifactId>
    <packaging>swf</packaging>
    <name>myArtifactName</name>
    <version>1.0</version>
 
    
    <repositories>
                <repository>
                        <id>flex-mojos-repository</id>
                        <url>http://svn.sonatype.org/flexmojos/repository/</url>
                        <releases>
                                <enabled>true</enabled>
                        </releases>
                </repository>
     </repositories>
 
    <pluginRepositories>
        <pluginRepository>
          <id>flex-mojos-repository</id>
          <url>http://svn.sonatype.org/flexmojos/repository/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
 
</project>

Запуск сборки проекта с помощью maven

Для сборки приложения необходимо набрать в командной строке,
project-name> mvn install

Рассмортим pom.xml по частям

XML:

<parent>
    <groupId>info.rvin.mojo</groupId>
    <artifactId>flex-super-pom</artifactId>
    <version>1.0</version>
</parent>

тег parent определяет родительский pom, для текущего pom.
В maven, текущий проект наследует свойства родительского.
В качестве родительского pom, для flex проекта здесь выступает flex-super-pom, который является частью flex-mojos. В нём определены многие полезные параметры, которые можно использовать по умолчанию. В своём проекте вы можете использовать собственный parent, взяв из flex-super-pom только необходимое.

Следующие теги определяют ваш артефакт в репозитории maven. В дальнейшем вы сможете использовать данный артифакт в других проектах.

XML:

<groupId>com.mydomain.mypackage</groupId>
    <artifactId>myArtifactId</artifactId>
    <packaging>swf</packaging>
    <name>myArtifactName</name>
    <version>1.0</version>

Стоит отметить

XML:

<packaging>swf</packaging>

- определяет тип артифакта, для библиотеки это swc.

XML:

<repositories>
                <repository>
                        <id>flex-mojos-repository</id>
                        <url>http://svn.sonatype.org/flexmojos/repository/</url>
                        <releases>
                                <enabled>true</enabled>
                        </releases>
                </repository>
     </repositories>

тег repositories определяет перечень репозиториев, в которых можно осуществлять поиск артифактов.

XML:

<pluginRepositories>
        <pluginRepository>
          <id>flex-mojos-repository</id>
          <url>http://svn.sonatype.org/flexmojos/repository/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>

тег pluginRepositories определяет перечень репозиториев, в которых можно осуществлять поиск maven плагинов.

Полезные дополнения

Удаление артефактов осуществляется командой project-name>mvn clean
Генерация asdoc, осуществляется командой project-name>mvn asdoc:asdoc
Команды можно комбинировать, например project-name>mvn clean install

Что ещё может Flex mojos?

Компелить SWF, SWC, ASWF, ASWC.
Запускать тесты.
Поддерживать RSL.
Оптимизировать, шифровать swf.
Создавать html wrapper,
В итоге собирать сложные проекты, включающие библиотеки, стили, локализацию, flex модули.

Плюсы использования maven для flex сборки

По моему опыту плюсом является стандартизация структуры проекта. Для того что бы понять что откуда берёться, достаточно посмотреть pom.xml.

Bookmark this article at

Постоянная ссылка 2008-07-04 10:59:45, от agahov Email , 1728 слов, Рубрики: Flex, maven , 4 комментариев »

4 комментариев

Комментарий от: Konstantin Kovalev [Учаснег] Email · http://riapriority.com/blogs/constantiner.php
На мой вкус стоило бы еще упомянуть Maven archetype for Flex-Mojos. Очень полезная вещь для простого и быстрого создания проекта с нуля, генерирующая не только структуру проекта, но и pom.xml.

Также хотелось бы больше узнать про управление зависимостями в приложении к нашим родным swc-файлам и как вручную устанавливать их в локальном репозитории :)

А так спасибо за цельный обзор.

Кстати, хочу узнать, а у тебя не было проблем с генерацией html-wrapper'а? У меня (и не только ) при задании дополнительных параметров вылетает эксепшн (связанный с пробелами в путях так как по умолчанию локальный репозиторий находится в Documents and settings).
2008-07-05 @ 23:59
Озвученные вопросы постараюсь осветить в следующей статье.

Maven archetype for Flex-Mojos, генерит полный pom, без зависимости от flex-super-pom, поэтому я решил начать с более простого примера.

посмотрел генерацию html-wrapper'а, у меня такая же ошибка, как в твоём комментарии.

ещё эта ошибка обсуждается здесь, но к сожалению пока без решения.

Думаю можно завести дефект, я за него тоже проголосую.
2008-07-06 @ 13:27
Комментарий от: Konstantin Kovalev [Учаснег] Email · http://riapriority.com/blogs/constantiner.php
поэтому я решил начать с более простого примера.

Это нынче считается более простым примером? :)
А в листе про ошибку я тоже читал.
Заведи issue, я за него проголосую :)
2008-07-06 @ 14:11
а что сложного то, один маленький xml?

Думаю тебе как первооткрывателю, принадлежит честь завести issue:)

2008-07-06 @ 18:53

Оставить комментарий


Ваш email адрес. (Не будет показан на сайте.)

Ваш URL будет показан.
:!: :?: :idea: :) :D :p B) ;) :> :roll: :oops: :| :-/ :( :'( |-| :>> :yes: ;D :P :)) 88| :. :no: XX( :lalala: :crazy: >:XX
(Заменить прерывания строк на <br />)
(Имя, email и сайт)
(Разрешить пользователям посылать вам сообщения (ваш email не отображается).)
3 + 2 + 7 - 1?
antispam test

Вы можете использовать OpenID чтобы предоставить ваше имя, email и url.