`
bruce.peng
  • 浏览: 65687 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

ant 编译 flex

    博客分类:
  • flex
阅读更多
在Eclipse下使用Ant编译Flex程序
我的机器内存1G,如果使用Eclipse Flex插件编译程序,用不了多久系统内存就会耗尽,机器会变得极其缓慢。使用Flex Builder 2.01似乎情况要好一点,但是觉得Eclipse似乎更加好用一点,比如Ctrl + Alt + LEFT可以将一块代码向左移……Flex Builder好像没有类似的快捷键,虽然有类似的命令。另外还要进行ColdFusion,js开发,如果总是将IDE换来换去多麻烦啊。

在网上浏览时看到使用ant来编译可以提高速度、减少内存占有率。当然也可以直接使用命令行mxmlc等命令来编译,但是不如使用ant方便——ant其实也是使用mxmlc命令来编译。

Adobe labs提供了ant tasks工具包并有一些使用方法,是英文并且不怎么详细。有几个中文Blog文章有写相关,但是大多是针对旧版本的Flex SDK,我现在使用的SDK是2.0正式版,较之那些教程上的版本新,导致那些教程上的例子不能执行。

以Eclipse3.2.1为例,一步步来吧。

   1. 从Adobe labs上下载最新的ant tasks工具包,地址:http://labs.adobe.com/wiki/index.php/Flex_Ant_Tasks。
   2. 解压缩。
   3. 将flexTasks.jar拷贝到eclipse的ant lib根目录下面,ant lib目录一般在eclipse根目录下,如\plugins\org.apache.ant_ant版本号\lib。
   4. 在项目根目录中新建flexTasks文件,拷入ant tasks中的几个文件加:lib和resources。
   5. 在项目根目录中建立build.xml。build.xml文件内容可参考:http://nstar.iteye.com/blog/129653, 这里也有一个示例,ant的命令可以到 ant的官方网站去查,今天在我的火狐2.0中地址栏输入ant move,居然FF自动进入了ant官方网站并且显示task move是不是FF的开发人员也用ant,为了方便查找而设置的,因为输入其他关键字一般进入的Google:
      <?xml version="1.0" encoding="utf-8"?>
      <project name="Flex Ant Builder Sample Project" basedir=".">
          <taskdef resource="flexTasks.tasks" classpath="${basedir}/flexTasks/lib/flexTasks.jar" />      
          <property name="FLEX_HOME" value="D:/eclipse/Adobe/Flex Builder 2 Plug-in/Flex SDK 2"/>
          <property name="APP_ROOT" value="${basedir}"/>
          <property name="DEPLOY_DIR" value="bin"/>
          <!-- compiled mxml/as file Name -->
          <property name="fileName" value="ActorLines" />
          <!-- compiled mxml/as file ext -->
          <property name="fileExt" value="mxml" />
          <!-- third party swc-->
          <!--<property name="THIRD_PARTY" value="D:/work/thirdparty/FlexLib" />-->
          <!-- modular application's main application fileName -->
          <property name="mainApp" value="" />
          <!-- output package direction,end with / -->
          <property name="package" value="" />
         
          <property name="FLASHPLAYER" value="D:/eclipse/Adobe/Flex Builder 2 Plug-in/Player/debug/SAFlashPlayer.exe" />
          <property name="IE" value="C:\Program Files\Internet Explorer\iexplore.exe" />
         
          <!-- compile a mxml/as file -->
          <target name="compile" depends="cleanCompile">
              <mxmlc
                  file="${APP_ROOT}/${package}${fileName}.${fileExt}"
                  output="${DEPLOY_DIR}/${package}${fileName}.swf"
                  actionscript-file-encoding="UTF-8"
                  keep-generated-actionscript="false"
                  warnings="false"
                  incremental="true"
                  >
                 
                  <!-- ***** source file path *******-->
                  <compiler.source-path path-element="${basedir}"/>
                 
                  <!-- Get default compiler options. -->
                  <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>           
                  <!-- List of path elements that form the roots of ActionScript class hierarchies. -->
                  <source-path path-element="${FLEX_HOME}/frameworks"/>
                  <!-- List of SWC files or directories that contain SWC files. -->
                  <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">
                      <include name="libs" />
                      <include name="../bundles/{locale}" />
                  </compiler.library-path>
                 
                  <!-- ***** thirdparth swc ***** -->
                  <!--<compiler.include-libraries dir="${THIRD_PARTY}" append="true">
                      <include name="DistortionEffects.swc" />
                  </compiler.include-libraries>       -->    
                 
                  <!-- Set size of output SWF file.
                  <default-size width="500" height="600" />
                  -->
              </mxmlc>
              <delete>
                  <!-- Deletes cache file -->
                  <fileset dir="${APP_ROOT}/${package}" includes="${fileName}*.cache" defaultexcludes="false"/>
              </delete>
          </target>
          <!-- compile mxml file and Generate a Link Report for the embed module -->
          <target name="CompileAndGenerateLinkReport">
              <mxmlc
                  file="${APP_ROOT}/${package}${fileName}.${fileExt}"
                  link-report="${APP_ROOT}/${package}${fileName}_LinkReport.xml"
                  output="${DEPLOY_DIR}/${package}${fileName}.swf"
                  actionscript-file-encoding="UTF-8"
                  keep-generated-actionscript="false"
                  incremental="true"
                  >
                  <!-- Get default compiler options. -->
                  <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>           
                  <!-- List of path elements that form the roots of ActionScript class hierarchies. -->
                  <source-path path-element="${FLEX_HOME}/frameworks"/>
                  <source-path path-element="${APP_ROOT}"/>
                  <!-- List of SWC files or directories that contain SWC files. -->
                  <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">
                      <include name="libs" />
                      <include name="../bundles/{locale}" />
                  </compiler.library-path>
                  <!-- Set size of output SWF file. -->
                  <default-size width="500" height="600" />
              </mxmlc>
              <delete>
                  <!-- Deletes cache file -->
                  <fileset dir="${APP_ROOT}/${package}" includes="${fileName}*.cache" defaultexcludes="false"/>
              </delete>
          </target>
          <!-- compile Modular mxml file with mainApp's Link Report -->
          <target name="CompileModuleWithLinkReport">
                  <mxmlc
                      file="${APP_ROOT}/${package}${fileName}.${fileExt}"
                      load-externs="${APP_ROOT}/${mainApp}_LinkReport.xml"
                      output="${DEPLOY_DIR}/${package}${fileName}.swf"
                      actionscript-file-encoding="UTF-8"
                      keep-generated-actionscript="false"
                      incremental="true"
                      >
                      <!-- Get default compiler options. -->
                      <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>           
                      <!-- List of path elements that form the roots of ActionScript class hierarchies. -->
                      <source-path path-element="${FLEX_HOME}/frameworks"/>
                      <!-- List of SWC files or directories that contain SWC files. -->
                      <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">
                          <include name="libs" />
                          <include name="../bundles/{locale}" />
                      </compiler.library-path>
                      <!-- Set size of output SWF file. -->
                      <default-size width="500" height="600" />
                  </mxmlc>
              <delete>
                  <!-- Deletes cache file -->
                  <fileset dir="${APP_ROOT}/${package}" includes="${fileName}*.cache" defaultexcludes="false"/>
              </delete>
              </target>
          <!-- wrapper a swf with html express-installation template-->
          <target name="wrapper" depends="cleanWrapper">
              <html-wrapper
                  title="Actor's lines in web"
                  width="100%"
                  height="100%"
                  application="flexApp"
                  swf="${fileName}"
                  version-major="9"
                  version-minor="0"
                  version-revision="0"
                  history="true"             
                  template="express-installation"
                  output="${DEPLOY_DIR}/${package}"/>
              <move file="${DEPLOY_DIR}/${package}index.html" tofile="${DEPLOY_DIR}/${fileName}.html"/>
              <copy todir="${DEPLOY_DIR}/assets">
                  <fileset dir="./assets" />
              </copy>
          </target>
          <!-- clean preview previous compile file -->
          <target name="cleanCompile">
              <delete dir="${APP_ROOT}/${package}generated"/>
              <delete>
                  <fileset dir="${DEPLOY_DIR}/${package}" includes="${fileName}*.swf"/>
              </delete>
          </target>
          <!-- clean preview previous wrapper file -->
          <target name="cleanWrapper">
              <delete>
                  <!-- Deletes history.swf -->
                  <fileset dir="${DEPLOY_DIR}/${package}" includes="history.swf" defaultexcludes="false"/>
                  <!-- Deletes playerProductInstall.swf -->
                  <fileset dir="${DEPLOY_DIR}/${package}" includes="playerProductInstall.swf" defaultexcludes="false"/>
                  <!-- Deletes ${fileName}.html -->
                  <fileset dir="${DEPLOY_DIR}/${package}" includes="${fileName}*.html" defaultexcludes="false"/>
                  <!-- Deletes history.htm -->
                  <fileset dir="${DEPLOY_DIR}/${package}" includes="$history.htm" defaultexcludes="false"/>
                  <!-- Deletes history.js and AC_OETags.js -->
                  <fileset dir="${DEPLOY_DIR}/${package}" includes="*.js" defaultexcludes="false"/>
                  <!-- Deletes all assets -->
                  <fileset dir="${DEPLOY_DIR}/assets" includes="*.*"/>           
              </delete>   
          </target>   
         
          <target name="run" depends="compile" description="Compile and run it.">
              <exec executable="${FLASHPLAYER}">
                  <arg value="${DEPLOY_DIR}/${package}${fileName}.swf" />
              </exec>
          </target>

          <target name="runie" depends="compile" description="Compile and run it.">
              <exec executable="${IE}">
                  <arg value="${basedir}\${DEPLOY_DIR}\${package}${fileName}.html" />
              </exec>
          </target>
      </project>

弄完build.xml之后,基本上就完成ant的设置,现在可以享受ant带来的速度与便捷了。
如何使用ant运行任务

   1. 在命令行里面输入ant targetname;
   2. 建立cmd文件,里面输入ant targetname,以后就只要双击这个cmd文件。
   3. 在eclipse中选择build.xml,然后右键选择Run as -> ant bulid,在弹出的对话框中选择Targets,然后选择一个Target,在Build中去掉Build before lunch前面的勾,现在可以Run啦。在Eclipse的控制台里面可以看到信息显示。


转自:http://www.cnblogs.com/fzhenmei/archive/2007/12/07/986733.html
分享到:
评论

相关推荐

    ant编译flex脚本

    利用ant编译flex脚本,可以直接在你的程序中使用。

    利用Ant自动编译Flex程序

    本文将深入探讨如何利用Apache Ant来自动编译Flex程序。Apache Ant是一种基于Java的构建工具,它允许开发者通过XML配置文件来定义任务,实现软件项目的构建、部署等自动化操作。Flex是一种用于创建富互联网应用程序...

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

    这样,我们就实现了使用Ant自动化编译Flex项目,大大提高了开发效率。 总的来说,通过Ant和Flex SDK的结合,开发者可以创建定制的构建流程,包括编译、优化、打包等,适应不同项目的需求。这种方式不仅简化了大型...

    使用Flex Ant Tasks编译工程文件

    在给定的文件列表中,`build.xml`就是这个Ant构建文件,它包含了编译Flex项目的配置和指令。打开这个文件,我们可以看到诸如`&lt;project&gt;`、`&lt;target&gt;`、`&lt;taskdef&gt;`等元素,这些元素描述了构建过程的各个步骤。 接...

    flex编译

    4. **Ant编译工具**:Apache Ant是一个Java库和命令行工具,用于驱动构建过程。在Flex开发中,Ant可以用来自动化编译、测试和部署流程。通过编写XML格式的构建脚本(build.xml),开发者可以定制化构建过程,例如...

    .Ant安装编译操作手册

    - **编写目的**:本文档旨在指导软件发布人员如何正确安装与配置Apache Ant,解决在安装与使用过程中可能遇到的问题,确保能够顺利地使用Ant对Flex/Java工程项目进行自动化编译与打包。 #### 二、环境说明 - **Ant...

    Ant 当个 脚本Flex

    Ant可以通过命令行调用来执行构建脚本,而Flex SDK提供了编译Flex应用程序所需的工具。 2. **构建脚本**:Ant脚本通常以`build.xml`命名,其中包含了构建过程的详细步骤。例如,它可能包括清理旧编译产物、编译源...

    flex ant

    在 Flex 开发中,源码通常由 MXML 和 ActionScript 文件组成,Ant 可以调用 Flex 编译器来编译这些源文件,并生成可执行的 SWF 或 AIR 应用。 压缩包子文件的文件名称 "MonkeyContactsExample" 告诉我们这可能是一...

    JW flv player flex修改源码并编译

    5. **使用Ant编译**: JW FLV Player的构建过程通常由Ant脚本控制。Ant脚本(如`build.xml`)定义了编译、打包和发布任务。你可以通过运行`ant`命令来执行这些任务。例如,使用`ant compile`命令将源码编译为SWF...

    flex_ant.zip

    使用这样的Ant脚本,开发者可以轻松地在命令行上运行`ant compile`命令,从而自动编译Flex项目,无需手动操作IDE。这对于持续集成(CI)环境尤其有用,因为它可以方便地集成到自动化构建流程中。 总结起来,"flex_...

    flex3的cookbook书籍完整版dpf(包含目录)

    使用mxmlc和Ant编译Flex应用程序 25.10节. 使用ASDoc和Ant生成文档 25.11节. 使用Rake编译Flex应用程序 25.12节. 使用ExpressInstall 25.13节. 使用Flex Builder 3的Memory Profiling查看内存快照 第二十六章...

    Ant安装编译操作手册

    - **编写目的**: 本文档旨在指导软件发布人员如何正确安装与配置Ant,并利用它来自动化编译Flex/Java项目,进而实现项目的打包发布流程。文档的目标读者是负责项目发布的人员。 #### 二、环境说明 - **Ant版本**: ...

    专题资料(2021-2022年)FLEX提高编译效率解决方案.docx

    3. **使用 fsch 和 ant**:fsch 是一个专门用于 Flex 编译的后台服务,结合 ant 脚本,可以更高效地编译模块。在 build.xml 文件中设置好参数,通过 ant 调用 fsch 服务进行编译。这种方式产出的 swf 文件体积较小,...

    Flex builder 学习学习 2007-10-08

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

    使用IntelliJ_IDEA开发Flex应用

    - `compile`:负责编译Flex应用。 - `run`:用于运行编译后的Flex应用。 3. **编写编译任务**:在`compile`任务中,通过调用`mxmlc.jar`(Flex SDK中的编译器)来进行Flex代码的编译,并设置必要的参数,如`-load-...

    apache-ant-1.8.2-bin.zip

    Flex是一种创建富互联网应用程序(RIA)的框架,Ant可以用来编译和部署Flex项目。 - `ant.txt`:可能是对Ant的简要说明或使用指南,包含了如何配置和使用Ant的一些关键信息。 Ant的工作原理是通过读取XML格式的构建...

    flex-sdk-4.5.1.21328A.zip

    在Flex开发中,Ant常被用来编译、测试和打包Flex项目,大大提高了开发效率。 至于许可证信息,"license-adobesdk.htm"和"license-mpl.htm"分别涉及Adobe SDK的许可证协议和Mozilla Public License(MPL)。Adobe ...

Global site tag (gtag.js) - Google Analytics