`
nstar
  • 浏览: 21787 次
社区版块
存档分类
最新评论

使用Flex Ant Tasks编译工程文件

阅读更多

Flex ant tasks 提供了一种方便的手段使用工业标准级的构建工具来编译你的Flex工程。
(The Flex Ant tasks provide a convenient way to build your Flex projects using an industry-standard build management tool)

下面以我在做的一个示例工程为例来使用flex ant tasks来编译工程文件:

1.在现有的工程下建了个ant目录,用来放附件中的相关文件
2.将附件的包解压到这个目录下,目录结构如下
ant
   |___bin----------------------编译结果输出目录
   |___flexTasks-------------flex ant tasks相关的库文件和封装html所需要的文件
   |___build.xml--------------任务配置文件
3.build.xml文件内容如下

build.xml 代码
  1. <!---->xml version="1.0" encoding="utf-8"?>  
  2. <project name="Flex Ant Builder Sample Project" basedir=".">  
  3.     <taskdef resource="flexTasks.tasks" classpath="${basedir}/flexTasks/lib/flexTasks.jar" />          
  4.     <property name="FLEX_HOME" value="C:/Program Files/Adobe/Flex Builder 2/Flex SDK 2"/>  
  5.     <property name="APP_ROOT" value="../srcFX"/>  
  6.     <property name="DEPLOY_DIR" value="bin"/>  
  7.     <!---->  
  8.     <property name="fileName" value="helloworldFX" />  
  9.     <!---->  
  10.     <property name="fileExt" value="mxml" />  
  11.     <!---->  
  12.     <property name="THIRD_PARTY" value="D:/work/thirdparty/FlexLib" />  
  13.     <!---->  
  14.     <property name="mainApp" value="" />  
  15.     <!---->  
  16.     <property name="package" value="" />  
  17.        
  18.        
  19.     <!---->  
  20.     <target name="compile" depends="cleanCompile">  
  21.         <mxmlc    
  22.             file="${APP_ROOT}/${package}${fileName}.${fileExt}"    
  23.             output="${DEPLOY_DIR}/${package}${fileName}.swf"  
  24.             actionscript-file-encoding="UTF-8"  
  25.             keep-generated-actionscript="false"  
  26.             warnings="false"  
  27.             incremental="true"  
  28.             >  
  29.                
  30.             <!---->  
  31.             <compiler.source-path path-element="../srcFX"/>  
  32.             <compiler.source-path path-element="../../srcFX"/>  
  33.                
  34.             <!---->  
  35.             <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>               
  36.             <!---->  
  37.             <source-path path-element="${FLEX_HOME}/frameworks"/>  
  38.             <!---->  
  39.             <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">  
  40.                 <include name="libs" />  
  41.                 <include name="../bundles/{locale}" />  
  42.             compiler.library-path>  
  43.                
  44.             <!---->  
  45.             <compiler.include-libraries dir="${THIRD_PARTY}" append="true">  
  46.                 <include name="DistortionEffects.swc" />  
  47.             compiler.include-libraries>                                      
  48.         mxmlc>  
  49.         <delete>  
  50.             <!---->  
  51.             <fileset dir="${APP_ROOT}/${package}" includes="${fileName}*.cache" defaultexcludes="false"/>  
  52.         delete>  
  53.     target>  
  54.     <!---->  
  55.     <target name="CompileAndGenerateLinkReport">  
  56.         <mxmlc    
  57.             file="${APP_ROOT}/${package}${fileName}.${fileExt}"    
  58.             link-report="${APP_ROOT}/${package}${fileName}_LinkReport.xml"  
  59.             output="${DEPLOY_DIR}/${package}${fileName}.swf"  
  60.             actionscript-file-encoding="UTF-8"  
  61.             keep-generated-actionscript="false"  
  62.             incremental="true"  
  63.             >  
  64.             <!---->  
  65.             <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>               
  66.             <!---->  
  67.             <source-path path-element="${FLEX_HOME}/frameworks"/>  
  68.             <source-path path-element="D:/study/helloworld/srcFX"/>  
  69.             <!---->  
  70.             <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">  
  71.                 <include name="libs" />  
  72.                 <include name="../bundles/{locale}" />  
  73.             compiler.library-path>  
  74.             <!---->  
  75.             <default-size width="500" height="600" />  
  76.         mxmlc>  
  77.         <delete>  
  78.             <!---->  
  79.             <fileset dir="${APP_ROOT}/${package}" includes="${fileName}*.cache" defaultexcludes="false"/>  
  80.         delete>  
  81.     target>  
  82.     <!---->  
  83.     <target name="CompileModuleWithLinkReport">  
  84.             <mxmlc    
  85.                 file="${APP_ROOT}/${package}${fileName}.${fileExt}"    
  86.                 load-externs="${APP_ROOT}/${mainApp}_LinkReport.xml"  
  87.                 output="${DEPLOY_DIR}/${package}${fileName}.swf"  
  88.                 actionscript-file-encoding="UTF-8"  
  89.                 keep-generated-actionscript="false"  
  90.                 incremental="true"  
  91.                 >  
  92.                 <!---->  
  93.                 <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>               
  94.                 <!---->  
  95.                 <source-path path-element="${FLEX_HOME}/frameworks"/>  
  96.                 <!---->  
  97.                 <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">  
  98.                     <include name="libs" />  
  99.                     <include name="../bundles/{locale}" />  
  100.                 compiler.library-path>  
  101.                 <!---->  
  102.                 <default-size width="500" height="600" />  
  103.             mxmlc>  
  104.         <delete>  
  105.             <!---->  
  106.             <fileset dir="${APP_ROOT}/${package}" includes="${fileName}*.cache" defaultexcludes="false"/>  
  107.         delete>  
  108.         target>  
  109.     <!---->  
  110.     <target name="wrapper" depends="cleanWrapper">  
  111.         <html-wrapper    
  112.             title="Flex Ant Builder Sample"  
  113.             width="100%"  
  114.             height="100%"  
  115.             application="flexApp"  
  116.             swf="${fileName}"  
  117.             version-major="9"  
  118.             version-minor="0"  
  119.             version-revision="0"  
  120.             history="true"                 
  121.             template="express-installation"  
  122.             output="${DEPLOY_DIR}/${package}"/>  
  123.         <move file="${DEPLOY_DIR}/${package}index.html" tofile="${DEPLOY_DIR}/${fileName}.html"/>  
  124.     target>  
  125.     <!---->  
  126.     <target name="cleanCompile">  
  127.         <delete dir="${APP_ROOT}/${package}generated"/>  
  128.         <delete>  
  129.             <fileset dir="${DEPLOY_DIR}/${package}" includes="${fileName}*.swf"/>  
  130.         delete>  
  131.     target>  
  132.     <!---->  
  133.     <target name="cleanWrapper">  
  134.         <delete>  
  135.             <!---->  
  136.             <fileset dir="${DEPLOY_DIR}/${package}" includes="history.swf" defaultexcludes="false"/>  
  137.             <!---->  
  138.             <fileset dir="${DEPLOY_DIR}/${package}" includes="playerProductInstall.swf" defaultexcludes="false"/>  
  139.             <!---->  
  140.             <fileset dir="${DEPLOY_DIR}/${package}" includes="${fileName}*.html" defaultexcludes="false"/>  
  141.             <!---->  
  142.             <fileset dir="${DEPLOY_DIR}/${package}" includes="$history.htm" defaultexcludes="false"/>  
  143.             <!---->  
  144.             <fileset dir="${DEPLOY_DIR}/${package}" includes="*.js" defaultexcludes="false"/>                
  145.         delete>       
  146.     target>           
  147. project>  

几点说明:
(1)FLEX_HOME是FlexBuilder安装目录下的SDK目录
(2)APP_ROOT是Flex应用的根目录,这个目录下的文件就是需要编译的mxml文件
(3)DEPLOY_DIR是编译后文件存放的目录
(4)fileName需要编译的文件名称,不包括扩展名称,扩展名称由下面的属性指定
(5)fileExt需要编译的文件的扩展名称
(6)因为你的源代码目录可能不是和你的APP_ROOT目录在一起,而是通过additional source来加入的工程里的,因此可以设置下源代码的目录,如下:
<compiler.source-path path-element="../srcFX"></compiler.source-path>

xml 代码
  1. <!-- ***** source file path *******-->  
  2. <compiler.source-path path-element="../srcFX"/>  
  3. <compiler.source-path path-element="../../srcFX"/>  


<compiler.source-path path-element="../../srcFX"></compiler.source-path>
(7)另外工程中可能引用了第三方的组件,因此这里在build.xml中定义了第三方组件存放位置的属性
<property value="D:/work/thirdparty/FlexLib" name="THIRD_PARTY"></property>

xml 代码
  1. <!-- third party swc-->  
  2. <property name="THIRD_PARTY" value="D:/work/thirdparty/FlexLib" />  


 这样在编译时就可以引用这个目录下的swc文件了,如下:

xml 代码
  1. <!-- ***** thirdparth swc ***** -->  
  2. <compiler.include-libraries dir="${THIRD_PARTY}" append="true">  
  3.     <include name="DistortionEffects.swc" />  
  4. </compiler.include-libraries>     


(8)warnings="false"不显示编译时出现的warning提示

最后,到上面所建的ant目录下,在命令行下执行ant -compile就可以编译工程文件了(或者建个批处理文件来执行)。

分享到:
评论
1 楼 felixsky 2008-12-22  
大哥,按照你说的做,报了一堆错误啊:
Error - Element type "mxmlc" must be declared.
Error - Element type "compiler.include-libraries" must be declared.
Error - Element type "compiler.library-path" must be declared.
Error - Element type "load-config" must be declared.
Error - Element type "source-path" must be declared.

.........

大哥,这是怎么回事啊?

相关推荐

    使用ant编译生成flex的swc文件

    本文将深入探讨如何使用Ant工具来编译生成Flex的SWC文件,以此解决传统方式带来的繁琐和不便。 首先,让我们了解基本概念。`Ant`是一款由Apache软件基金会开发的Java构建工具,它基于XML编写构建脚本,可以跨平台...

    利用Ant自动编译Flex程序

    SDK包含了许多Flex编译器和所需的库文件,我们需要将其添加到Ant的类路径中,以便Ant能够找到并执行Flex编译任务。 在实际项目中,我们可能有多个Flex源文件,或者需要根据不同的环境编译不同的版本。这时,我们...

    flex_ant.zip

    在这个名为"flex_ant.zip"的压缩包中,我们看到一个关键文件"Flex_Ant_Tasks",这通常意味着它包含了一组自定义的Ant任务,专门设计用于处理Flex项目的构建流程。Ant的任务是可以扩展的,开发者可以创建自定义的任务...

    Flex builder 学习学习 2007-10-08

    10. **文档和教程**:如"Flex Ant脚本模板"和"使用Flex Ant Tasks编译flex工程"这样的资料,是学习如何有效利用Ant构建Flex项目的教程。 综上所述,2007年时的Flex Builder学习涵盖了基础的Flex编程概念、MXML和...

    FlexBuilder4迁移文档

    "Using Flex Ant tasks"和"Using the compc task"以及"Using the mxmlc task"这些文件会介绍如何在Flex 4中继续使用或调整Ant脚本,确保编译和构建流程不受影响。 5. **项目迁移步骤**:文件"Moving existing Flex ...

    flex的sdk3.6.0

    - **Flex Ant Tasks**:使用Apache Ant构建系统,可以帮助自动化构建流程,如编译、打包和部署Flex应用。 - **Flex Builder**(非SDK自带):这是一个基于Eclipse的IDE,提供了图形化界面和调试工具,简化了Flex...

    关于installanywhere打包

    InstallAnywhere支持使用Ant任务(如压缩包中的Flex_Ant_Tasks)来集成Apache Ant构建工具,使得自动化处理变得更为方便。Ant任务可以用于执行预安装检查、注册表操作、文件权限设置等。 6. **多语言支持**:为了...

Global site tag (gtag.js) - Google Analytics