DevSecOpsARTIGO

Compilando aplicações Flex com o Maven

Quem está acostumado com integração contínua e tem o build do sistema automatizado rodando de tempos em tempos não precisa se desesperar, porque já existem soluções para automatizar o build de uma aplicação Flex (actionscript) utilizando Maven.

As opções que eu encontrei são as seguintes: Flex-Mojos e Maven Flex Plugin.

Até onde eu pude perceber, o flex-mojos foi o que melhor funcionou para gerar o build da aplicação. Os dois oferecem archetypes para criação de novos projetos, com opções de um projeto flex application (SWF), um library simples (SWC) ou uma library com acesso a API flex (SWC também).

Para demonstrar, vou mostrar a criação do projeto a partir do Maven Flex Plugin:

mvn archetype:generate -DarchetypeCatalog="http://maven.servebox.org"

Essa linha de comando irá lhe perguntar qual o archetype que você quer criar, groupID e artifactID (que vai ser o nome do projeto). Após isso, será gerado um POM.xml dentro de uma pasta com o nome do artefactID que você passou.

O POM deve ter mais ou menos esta cara:

<project><br />    <modelVersion>4.0.0</modelVersion><br />    <groupId>my.group.id</groupId><br />    <artifactId>my-artifact</artifactId><br />    <version>1.0-SNAPSHOT</version><br />    <name>My Simple Project</name><br /><br />    <packaging>swf</packaging><br /><br />    <pluginRepositories><br />        <pluginRepository><br />            <id>servebox</id><br />            <name>ServeBox Plugin Repository</name><br />            <url>http://maven.servebox.org/repository</url><br />        </pluginRepository><br />    </pluginRepositories><br />    <repositories><br />        <repository><br />            <id>servebox</id><br />            <name>ServeBox Plugin Repository</name><br />            <url>http://maven.servebox.org/repository</url><br />        </repository><br />    </repositories><br /><br />    <build><br />        ...<br />        <plugins><br />            <plugin><br />                <groupId>org.servebox.flex</groupId><br />                <artifactId>flex-plugin</artifactId><br />                <version>2.3.2</version><br />                <extensions>true</extensions><br />            </plugin><br />        </plugins><br />    </build><br /></project>

Existe ainda a possibilidade de utilizar para o build o Flex-Mojos (caso misteriosamente não funcione com o maven lex plugin), bastando, para isso, modificar a linhas selecionadas acima por:

<plugin><br />     <groupId>org.sonatype.flexmojos</groupId><br />     <artifactId>flexmojos-maven-plugin</artifactId><br />     <version>3.2.0</version><br />     <extensions>true</extensions><br /></plugin>

Além disso, você pode inserir configurações no seu build como a licença do flex (muito útil para quem utiliza a biblioteca de charts do flex, que só compila com a licença professional, então tem que incluir a licença nessas configurações), source paths etc, etc:

<plugin><br />  <groupId>org.sonatype.flexmojos</groupId><br />  <artifactId>flexmojos-maven-plugin</artifactId><br />  <version>3.2.0</version><br />  <extensions>true</extensions><br />  <configuration><br />     <licenses><br />         <flexbuilder3>SUA LICENÇA</flexbuilder3><br />     </licenses><br />     <sourcePaths><br />         <path>${basedir}/src/main/flex</path><br />     </sourcePaths><br />     <mergeResourceBundle>true</mergeResourceBundle><br />  </configuration><br />  <dependencies><br />     <dependency><br />         <groupId>com.adobe.flex</groupId><br />         <artifactId>license</artifactId><br />         <version>3.2.0.3958</version><br />         <type>jar</type><br />    </dependency><br />  </dependencies><br /></plugin>

Uma vez gerado o POM, podemos gerar o projeto o projeto do eclipse através do goal:

mvn flex:eclipse

Voilá! Pronto, feito isso, basta importar o projeto criado no eclipse. O seu projeto agora pode ser compilado pelo Maven, e suportar os goals convencionais do lifecycle do Maven 😉

é Engenheiro de Configuração do CESAR - Centro de Estudos e Sistemas Avanaçados do Recife e desde 2001 trabalha com desenvolvimento de Sistemas.

Ver perfil