用Maven构建Flex4项目实践记录

阅读更多

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

参考:

Maven Reference Chapter 13. Developing with Flexmojos: http://www.sonatype.com/books/mvnref-book/reference/flex-dev.html (将一些前因后果说的比较明确,建议首先阅读 )

Flexmojos Homepage: http://flexmojos.sonatype.org/

Getting Started: http://flexmojos.sonatype.org/getting-started.html

wiki: https://docs.sonatype.org/display/FLEXMOJOS/Home

maven与flex的结合(flexmojos): http://reuental.iteye.com/blog/652895

IntelliJ IDEA下使用FlexMojos : https://docs.sonatype.org/display/FLEXMOJOS/Tips+for+using+FlexMojos+with+IntelliJ+IDEA

-------------------------------------------------------------------------------------------------------------------------------------------------------------------


一、相关环境

OS: Ubuntu 9.10

Maven V2.2.1

Flexmojos V3.7.1

Flex SDK 4.1

 

二、准备工作

1、Maven全局设置:增加1个包含Flex framework的仓库

注:根据实践,不设置也可,在pom里指定也是OK的

2、将 Flash Player 加到环境变量 PATH 中以便支持单元测试

注:如果本机有FlexSDK,可在 %FLEXSDKHOME% / runtimes/player/ 下找到各OS平台对应的Flash Player 安装文件,安装即可;若本机没有,可以到Adobe网站下载安装。

 

、构建过程

1、通过模板创建webapp(命令行方式),终端执行:

mvn archetype:generate -DarchetypeRepository=http://repository.sonatype.org/content/groups/flexgroup -DarchetypeGroupId=org.sonatype.flexmojos -DarchetypeArtifactId=flexmojos-archetypes-modular-webapp -DarchetypeVersion=3.7.1

     根据提示依次输入 groupId、 artifactId、version、package,确认后进行构建,构建成功会产生如下结构的项目文件夹(testwebapp 为我输入的 artifactId 值):


用Maven构建Flex4项目实践记录_第1张图片

 

注:由模板生成项目基础结构这一步,在几款IDE(本身支持Maven或安装Maven插件)中,在新建工程的向导引领下,同样可以完成。

 

2、默认创建出来的项目所使用的FlexSDK版本为3.2.0.3958,想要构建Flex4项目需要修改以下几处:

1)  编辑 %artifactId% / pom.xml  , 增加 仓库配置 和 FlexSDK 版本属性,修改后的 pom.xml 如下:




  4.0.0
  org.llp.flex
  testwebapp
  1.0-SNAPSHOT
  pom  

  
    swc
    swf
    war
  

  
  
    4.1.0.16248
  

  
  
    
      flexmojos
      http://repository.sonatype.org/content/groups/flexgroup/
        
        true  
        
        
        true  
        
    
  

  
    
      flexmojos
      http://repository.sonatype.org/content/groups/flexgroup/
        
        true  
        
        
        true  
        
    
  

 

2)  编辑 %artifactId% / swc / pom.xml  和 %artifactId% / swf / pom.xml :

     a) flexmojos-maven-plugin 下增加一些配置(FlexSDK 编译版本、Flash Player 版本等)

     b) 修改 flex-framework 的版本

     c) 修正parent 配置段的 artifactId 的值

     d) 增加 goals 配置(仅 %artifactId% / swf / pom.xml 需要配置)

 

     修改后的 pom.xml 如下(2个pom文件大部分是相同,故下面省略了一些内容):



  
    org.llp.flex
    testwebapp
    1.0-SNAPSHOT
  


  
    src/main/flex
    src/test/flex
    
      
        org.sonatype.flexmojos
        flexmojos-maven-plugin
        3.7.1
        true
        
        
          
             
              wrapper
            
          
        
        
          
            en_US
          
          
          10.0.0
        
        
        
          
            com.adobe.flex
            compiler
            ${flex.sdk.version}
            pom
           
        
      
    
  

  
    
      com.adobe.flex.framework
      flex-framework
      ${flex.sdk.version}
      pom
    


  



 

3、编译项目,终端执行:

mvn install

   过程中会调用FlashPlayer进行单元测试,成功后可以在各模块的 target 文件夹下找到编译后的成品;

   其中 %artifactId% / swf / target 下有一个 html 文件,浏览器打开该文件,可以看到 Hello World! 。

 

   至此,构建过程实践成功。

 

四、 在IDE下使用该项目(承接上文步骤)

1、IDE 为 Flex/Flash Builder 或 Eclipse

1)  生成 Flex/Flash Builder 项目文件,终端执行:

mvn flexmojos:flexbuilder

2)  运行 IDE,导入该项目即可。

 

2、IDE 为 Intellij IDEA

1)  编辑 %artifactId% / swc / pom.xml  和 %artifactId% / swf / pom.xml,  flexmojos-maven-plugin 下增加一项配置,修改后的 pom.xml 片段如下:


  
    src/main/flex
    src/test/flex
    
      
        org.sonatype.flexmojos
        flexmojos-maven-plugin
        3.7.1
        true
        
        
          
             
              wrapper
            
          
        
        
          
            en_US
          
          
          true
          
          10.0.0
        
        
        
          
            com.adobe.flex
            compiler
            ${flex.sdk.version}
            pom
           
        
      
    
  

 

2) 编译项目,终端执行:

mvn install

   编译后,在各个模块的 target 下会有一个文件名形如 ...config-report.xml 的文件。

 

3) 运行 Intellij IDEA,点击菜单 File -> Open Project, 选择 %artifactId% / pom.xml 即可;

     点击菜单 File - Project Structure - Facets - Flex, 可以看到 Flex SDK 的选项中有 compiler-4.1.0.16248.pom 。

 

注:

1) 由于我的OS是Ubuntu,没有相关编辑支持,所以导入IDE后也没有什么实际用处;即使IDE支持,由于项目类型为Maven,所以也得不到像Flex/AIR项目那样的build、run支持,一切都只能通过Maven来进行。

2) Intellij IDEA 下构建该项目获其他Flex项目时,无法选择该SDK ,并且存在一个错误:PHP home is not specified ,尚未解决。

 

 

五、 遇到问题与解决

Q1、运行 mvn install 时出现错误:

Flex compiler and flex framework versions doesn't match. Compiler: '3.2.0.3958' - Framework: '4.1.0.16248'.

解决:指定Flex SDK编译版本,详见上文 三 -> 2 -> 2)

 

Q2、运行 mvn install 时在执行 testcase 时失败:

Invalid state: the flashplayer is closed, but the sockets still running...

解决:指定Flash Player版本为10,详见上文 三 -> 2 -> 2)

 

Q3、运行 mvn install 时在执行 testcase 时失败:

Accept timed out .../TestRunner.swf

解决:同 Q2。

 

  • 用Maven构建Flex4项目实践记录_第2张图片
  • 大小: 15.5 KB
  • 查看图片附件

你可能感兴趣的:(maven,Flex,Flash,IDE,XML)