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>
<modelVersion>4.0.0</modelVersion>
<groupId>my.group.id</groupId>
<artifactId>my-artifact</artifactId>
<version>1.0-SNAPSHOT</version>
<name>My Simple Project</name>
<packaging>swf</packaging>
<pluginRepositories>
<pluginRepository>
<id>servebox</id>
<name>ServeBox Plugin Repository</name>
<url>http://maven.servebox.org/repository</url>
</pluginRepository>
</pluginRepositories>
<repositories>
<repository>
<id>servebox</id>
<name>ServeBox Plugin Repository</name>
<url>http://maven.servebox.org/repository</url>
</repository>
</repositories>
<build>
...
<plugins>
<plugin>
<groupId>org.servebox.flex</groupId>
<artifactId>flex-plugin</artifactId>
<version>2.3.2</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
</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>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<version>3.2.0</version>
<extensions>true</extensions>
</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>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<version>3.2.0</version>
<extensions>true</extensions>
<configuration>
<licenses>
<flexbuilder3>SUA LICENÇA</flexbuilder3>
</licenses>
<sourcePaths>
<path>${basedir}/src/main/flex</path>
</sourcePaths>
<mergeResourceBundle>true</mergeResourceBundle>
</configuration>
<dependencies>
<dependency>
<groupId>com.adobe.flex</groupId>
<artifactId>license</artifactId>
<version>3.2.0.3958</version>
<type>jar</type>
</dependency>
</dependencies>
</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 😉