Flash Buider编译Flex项目很慢,卡死。实在不敢恭维。工作的原因,要使用Ant编译,无奈,Adobe官方脑残的帮助文档,关于Ant的介绍简直就是鸡肋,实在让人愤慨。
准备:
- flexsdk(4.6) 下载地址http://www.adobe.com/devnet/flex/flex-sdk-download.html
- java jdk (1.6以上)
- ant apache-ant-1.9.4 下载地址 http://ant.apache.org/
- ant-contrib (为什么需要这个,我还没仔细追究) 下载地址 http://sourceforge.net/projects/ant-contrib/
第一步,安装JDK,设置JAVA_HOME环境变量,安装路径自己根据实际情况
第二步,解压flexsdk,d:\flexsdk4.6\bin 此目录结构即可
第三步,解压ant d:\apache-ant-1.9.4\bin 此目录结构即可
第四步,解压ant-contrib,目录结构为 docs,lib,ant-contrib-1.03b3.jar,将lib目录中所有jar文件和ant-contrib-1.03b3.jar拷贝放到 d:\apache-ant-1.9.4\lib目录中
第五步,进入d:\flexsdk4.6\lib目录,将所有jar包拷贝,放到d:\apache-ant-1.9.4\lib中,可避免编译过程中出现的[mxmlc] 错误: PermGen space ,进入d:\flexsdk4.6\ant\lib目录,拷贝flexTask.jar到d:\apache-ant-1.9.4\lib,否则无法编译。
flexsdk各文件夹作用解释
- ant\ ant编译flex的源码和jar文件,用户可根据自己需要重写代码并生成jar包。
- asdoc\ 文档
- bin\ 编译工具
- framework\ flex框架,css样式,编译默认配置文件
- include\ 不知何用
- install \貌似是安卓的调试驱动
- lib \ 不多赘述
- runtimes\
- samples\ 样式
- templates\编译模板(坑爹的迷惑。。。。因为mxmlc根本不从这里拿模板,模板在flexTask.jar包里)
<?xml version="1.0" encoding="UTF-8" ?> <project name="DSViewCIRSys" basedir="."> <!-- 定义ant存放位置 --> <property name="ant.lib.dir" value="D:\apache-ant-1.9.4\lib" /> <!-- 定义Flex SDK存放位置 --> <property name="FLEX_HOME" value="D:\flexsdk4.6\" /> <!-- 初始化时间格式,以便使用 --> <tstamp> <format property="TODAY" pattern="yy.mm.dd" /> </tstamp> <!-- 导入ant支持包 --> <path id="ant.classpath"> <fileset dir="${ant.lib.dir}"> <include name="*.jar" /> </fileset> </path> <!-- 定义目标编译结果路径 --> <property name="dist.home" value="./dist" /> <property name="dist.home.src" value="./dist/src" /> <property name="dist.home.libs" value="./dist/libs" /> <property name="dist.home.bin" value="./dist/bin" /> <!--<property name="dist.home.assets" value="./dist/assets" />--> <!-- 定义源码路径 --> <property name="project.home" value="./" /> <property name="project.home.src" value="./src" /> <property name="project.home.libs" value="./libs" /> <!--<property name="project.home.assets" value="./assets" />--> <property name="release.system" value="./dist/release/system"/> <property name="release.custom" value="./dist/release/custom"/> <property name="release.user" value="./dist/release/user"/> <target name="build"> <antcall target="init"/> <antcall target="confusion"/> <antcall target="compileFP"/> <antcall target="wrapper"/> <antcall target="moveConfigXml"/> <antcall target="copy3"/> </target> <!-- =================================================================== --> <!-- 初始化 --> <!-- 清除dist目录; 将源码复制过去. --> <!-- =================================================================== --> <target name="init"> <taskdef resource="flexTasks.tasks" classpathref="ant.classpath" /> <!-- <taskdef resource="confusion.tasks" classpathref="ant.classpath" /> --> <taskdef resource="net/sf/antcontrib/antlib.xml" classpathref="ant.classpath" /> <echo message="Flex SDK Home: ${FLEX_HOME}" /> <delete dir="${dist.home}" /> <mkdir dir="${dist.home}" /> <mkdir dir="${release.system}" /> <mkdir dir="${release.custom}" /> <mkdir dir="${release.user}" /> <copy todir="${dist.home.src}"> <fileset dir="${project.home.src}" /> </copy> <copy todir="${dist.home.libs}"> <fileset dir="${project.home.libs}" /> </copy> <!--<copy todir="${dist.home.assets}"> <fileset dir="${project.home.assets}" /> </copy>--> </target> <!-- =================================================================== --> <!-- 混淆代码 --> <!-- =================================================================== --> <target name="confusion" depends="init"> <echo message="star confusion code..." /> <!-- <for param="file"> <path> <fileset dir="${dist.home.src}"> <include name="**/*.as" /> </fileset> </path> <sequential> <confusion fileName="@{file}" /> <echo message="@{file} is confusioned!!" /> </sequential> </for>--> </target> <!-- =================================================================== --> <!-- 编译Flex Project 项目 --> <!-- =================================================================== --> <target name="compileFP" depends="confusion"> <echo message="start compile Flex Project..." /> <for param="file"> <path> <fileset dir="${dist.home.src}"> <include name="**/*.mxml" /> </fileset> </path> <sequential> <!-- 通过正则表达式取出modules中的模块文件,进行批量编译~! --> <propertyregex override="yes" property="compile.target.name" input="@{file}" regexp="(.*)src(.*)(mxml)" replace="\1bin\2swf" /> <mxmlc warnings="false" file="@{file}" output="${compile.target.name}" debug="false" incremental="true"> <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml" /> <static-link-runtime-shared-libraries>true</static-link-runtime-shared-libraries> <show-actionscript-warnings>false</show-actionscript-warnings> <show-binding-warnings>false</show-binding-warnings> <source-path path-element="${dist.home.src}" /> <!--<source-path path-element="${dist.home.assets}" />--> <include-libraries file="${dist.home.libs}" /> </mxmlc> <!-- 清除缓存文件 --> <delete file="${compile.target.name}.cache" /> <echo message="Compiled @{file} =====>> ${compile.target.name}" /> <echo message=" " /> </sequential> </for> </target> <target name="wrapper" > <taskdef name="html-wrapper" classname="flex.ant.HtmlWrapperTask" classpath="${ant.lib.dir}/flexTasks.jar" /> <html-wrapper output="${basedir}\dist\release\system" swf="Index" history="true" height="100%" width="100%" title="大话西游" bgcolor="white" /> <html-wrapper output="${basedir}\dist\release\custom" swf="Index" history="true" height="100%" width="100%" title="" bgcolor="white" /> <html-wrapper output="${basedir}\dist\release\user" swf="Index" history="true" height="100%" width="100%" title="" bgcolor="white" /> <echo message="Generate HTML OK" /> </target> <target name="moveConfigXml"> <copy todir="${dist.home}/bin"> <fileset dir="${project.home.src}" > <include name="Config.xml"/> </fileset> </copy> </target> <target name="copy3"> <copy todir="${release.system}"> <fileset dir="${dist.home.bin}" > </fileset> </copy> <copy todir="${release.custom}"> <fileset dir="${dist.home.bin}" > </fileset> </copy> <copy todir="${release.user}"> <fileset dir="${dist.home.bin}" > </fileset> </copy> <echo message="Copy 3 Success" /> </target> </project>
以上是我们工程需要而配置。个别工程,自行改动。
相关推荐
利用ant编译flex脚本,可以直接在你的程序中使用。
本文将深入探讨如何利用Apache Ant来自动编译Flex程序。Apache Ant是一种基于Java的构建工具,它允许开发者通过XML配置文件来定义任务,实现软件项目的构建、部署等自动化操作。Flex是一种用于创建富互联网应用程序...
这样,我们就实现了使用Ant自动化编译Flex项目,大大提高了开发效率。 总的来说,通过Ant和Flex SDK的结合,开发者可以创建定制的构建流程,包括编译、优化、打包等,适应不同项目的需求。这种方式不仅简化了大型...
在给定的文件列表中,`build.xml`就是这个Ant构建文件,它包含了编译Flex项目的配置和指令。打开这个文件,我们可以看到诸如`<project>`、`<target>`、`<taskdef>`等元素,这些元素描述了构建过程的各个步骤。 接...
4. **Ant编译工具**:Apache Ant是一个Java库和命令行工具,用于驱动构建过程。在Flex开发中,Ant可以用来自动化编译、测试和部署流程。通过编写XML格式的构建脚本(build.xml),开发者可以定制化构建过程,例如...
- **编写目的**:本文档旨在指导软件发布人员如何正确安装与配置Apache Ant,解决在安装与使用过程中可能遇到的问题,确保能够顺利地使用Ant对Flex/Java工程项目进行自动化编译与打包。 #### 二、环境说明 - **Ant...
Ant可以通过命令行调用来执行构建脚本,而Flex SDK提供了编译Flex应用程序所需的工具。 2. **构建脚本**:Ant脚本通常以`build.xml`命名,其中包含了构建过程的详细步骤。例如,它可能包括清理旧编译产物、编译源...
在 Flex 开发中,源码通常由 MXML 和 ActionScript 文件组成,Ant 可以调用 Flex 编译器来编译这些源文件,并生成可执行的 SWF 或 AIR 应用。 压缩包子文件的文件名称 "MonkeyContactsExample" 告诉我们这可能是一...
5. **使用Ant编译**: JW FLV Player的构建过程通常由Ant脚本控制。Ant脚本(如`build.xml`)定义了编译、打包和发布任务。你可以通过运行`ant`命令来执行这些任务。例如,使用`ant compile`命令将源码编译为SWF...
使用这样的Ant脚本,开发者可以轻松地在命令行上运行`ant compile`命令,从而自动编译Flex项目,无需手动操作IDE。这对于持续集成(CI)环境尤其有用,因为它可以方便地集成到自动化构建流程中。 总结起来,"flex_...
使用mxmlc和Ant编译Flex应用程序 25.10节. 使用ASDoc和Ant生成文档 25.11节. 使用Rake编译Flex应用程序 25.12节. 使用ExpressInstall 25.13节. 使用Flex Builder 3的Memory Profiling查看内存快照 第二十六章...
- **编写目的**: 本文档旨在指导软件发布人员如何正确安装与配置Ant,并利用它来自动化编译Flex/Java项目,进而实现项目的打包发布流程。文档的目标读者是负责项目发布的人员。 #### 二、环境说明 - **Ant版本**: ...
3. **使用 fsch 和 ant**:fsch 是一个专门用于 Flex 编译的后台服务,结合 ant 脚本,可以更高效地编译模块。在 build.xml 文件中设置好参数,通过 ant 调用 fsch 服务进行编译。这种方式产出的 swf 文件体积较小,...
10. **文档和教程**:如"Flex Ant脚本模板"和"使用Flex Ant Tasks编译flex工程"这样的资料,是学习如何有效利用Ant构建Flex项目的教程。 综上所述,2007年时的Flex Builder学习涵盖了基础的Flex编程概念、MXML和...
- `compile`:负责编译Flex应用。 - `run`:用于运行编译后的Flex应用。 3. **编写编译任务**:在`compile`任务中,通过调用`mxmlc.jar`(Flex SDK中的编译器)来进行Flex代码的编译,并设置必要的参数,如`-load-...
Flex是一种创建富互联网应用程序(RIA)的框架,Ant可以用来编译和部署Flex项目。 - `ant.txt`:可能是对Ant的简要说明或使用指南,包含了如何配置和使用Ant的一些关键信息。 Ant的工作原理是通过读取XML格式的构建...
在Flex开发中,Ant常被用来编译、测试和打包Flex项目,大大提高了开发效率。 至于许可证信息,"license-adobesdk.htm"和"license-mpl.htm"分别涉及Adobe SDK的许可证协议和Mozilla Public License(MPL)。Adobe ...