开篇第一句,flexbuilder就是一个悲剧。
好了,为了让项目更方便开发和构建,决定使用maven 来作为项目的管理工具(不知道maven的请看 这里)
但是maven原生是支持java的并不支持flex,所以寻寻觅觅啊,最终选择了flexmojos
要使用flexmojos插件,我们需要加入第三方的repository
<pluginRepositories> <pluginRepository> <id>local</id> <url>http://repository.sonatype.org/content/groups/flexgroup/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> <repositories> <repository> <id>flex-mojos-repository</id> <url>http://repository.sonatype.org/content/groups/flexgroup/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
直接上多模块的例子,是一个swf工程依赖一个swc工程
首先来看下主POM文件:
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>xxxxx</groupId> <artifactId>yyyyy-flex</artifactId> <version>1.0</version> <name>yyyyy-flex</name> <packaging>pom</packaging> <modules> <module>yyyyy</module> <module>deploy</module> </modules> <pluginRepositories> <pluginRepository> <id>local</id> <url>http://repository.sonatype.org/content/groups/flexgroup/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> <repositories> <repository> <id>flex-mojos-repository</id> <url>http://repository.sonatype.org/content/groups/flexgroup/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>xxxxx</groupId> <artifactId>yyyyy</artifactId> <version>1.0</version> <type>swc</type> </dependency> <dependency> <groupId>xxxxx</groupId> <artifactId>deploy</artifactId> <version>1.0</version> <type>swf</type> </dependency> <dependency> <groupId>xxxxx</groupId> <artifactId>as3corelib</artifactId> <version>1.0</version> <type>swc</type> </dependency> <dependency> <groupId>xxxxx</groupId> <artifactId>xpath-as3</artifactId> <version>1.0</version> <type>swc</type> </dependency> <dependency> // 这是flex的playerglobal框架包 <groupId>com.adobe.flex.framework</groupId> <artifactId>playerglobal</artifactId> <version>4.0.0.8811</version> <type>swc</type> <classifier>10</classifier> </dependency> </dependencies> </dependencyManagement> <build> <sourceDirectory>${basedir}/src/main/flex</sourceDirectory> //定义源代码路径 <testSourceDirectory>${basedir}/src/test/flex</testSourceDirectory> <plugins> <plugin>//flexmojos插件使用 <groupId>org.sonatype.flexmojos</groupId> <artifactId>flexmojos-maven-plugin</artifactId> <version>3.6.1</version> <extensions>true</extensions> <configuration> <targetPlayer>10.0.0</targetPlayer> //设定目标player版本 </configuration> <dependencies> <dependency> <groupId>com.adobe.flex</groupId> <artifactId>compiler</artifactId> //设定编译器版本 <version>4.0.0.8811</version> <type>pom</type> </dependency> </dependencies> </plugin> </plugins> </build> </project>
看子swc工程,此工程依赖第三方的两个库和playglobal的库
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>xxxxx</groupId> <artifactId>yyyyy-flex</artifactId> <version>1.0</version> </parent> <groupId>xxxxx</groupId> <artifactId>yyyyy</artifactId> <version>1.0</version> <name>yyyyy</name> <packaging>swc</packaging> <dependencies> <dependency> <groupId>com.adobe.flex.framework</groupId> <artifactId>playerglobal</artifactId> <classifier>10</classifier> <type>swc</type> </dependency> <dependency> <groupId>xxxxx</groupId> <artifactId>as3corelib</artifactId> <type>swc</type> </dependency> <dependency> <groupId>xxxxx</groupId> <artifactId>xpath-as3</artifactId> <type>swc</type> </dependency> </dependencies> </project>
最后是swf子工程的POM,此工程依赖上述子工程:
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>xxxxx</groupId> <artifactId>yyyyy-flex</artifactId> <version>1.0</version> </parent> <groupId>xxxxx</groupId> <artifactId>deploy</artifactId> <version>1.0</version> <name>deploy</name> <packaging>swf</packaging> <dependencies> <dependency> <groupId>xxxxx</groupId> <artifactId>yyyyy</artifactId> <type>swc</type> </dependency> </dependencies> </project>
最后执行 mvn flexmojos:flexbuilder 产生flexbuilder所需要导入的工程文件,
注意导入工程的时候一定要使用导入flex工程,否则不能自动生成swc文件