`
myten
  • 浏览: 134082 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ant编译Flex

 
阅读更多

Flash Buider编译Flex项目很慢,卡死。实在不敢恭维。工作的原因,要使用Ant编译,无奈,Adobe官方脑残的帮助文档,关于Ant的介绍简直就是鸡肋,实在让人愤慨。

 

 

准备:

  1. flexsdk(4.6) 下载地址http://www.adobe.com/devnet/flex/flex-sdk-download.html
  2. java  jdk (1.6以上)
  3. ant apache-ant-1.9.4 下载地址 http://ant.apache.org/
  4. 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脚本

    利用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