=波波日志 > flash/flex/fcs/AIR > 25.9节. 使用mxmlc和Ant编译Flex应用程序=
[转]25.9节. 使用mxmlc和Ant编译Flex应用程序
25.9.1. 问题
我想为Ant建造文件添加编译程序的任务。
25.9.2. 解决办法
为你的使用MXML编译器编译文件的Ant建造文件添加可执行的任务。
25.9.3. 讨论
编译对象是你要添加到你的Ant建造文件中的最常见和有用的对象。Flex应用程序是用Flex 3 SDK中的免费的命令行编译器mxmlc编译的。在你建造文件中添加了要编译的目标后,就可以自动化建造过程了:不用你再打开命令提示符或终端,Ant会自动编译所有的文件。
MXML编译器(mxmlc)有多种格式。你可以生成一个目标,然后使用可执行版的:
或者,你可以编写一个类似下面的任务,然后使用Java版的:
最后(或许是最好的)方式是使用Flex 3 SDK中的mxmlc任务。在25.3节中已经讲述了如何安装。为了能访问你的建造文件中的信息,你应该首先添加一个任务定义:
导入Flex任务后,你可以使用更加直观的语法编译,在诸如Eclipse一样的工具中显示错误提示。比如:
在所有的例子中,应用了相同的基本规则。你应该定义指向项目src和bin目录的属性,也需要定义指向Flex 3 SDK的属性。例子中的所有属性的名字都可以改变,除了FLEX_HOME,这个名字是固定的。FLEX_HOME属性必须在使用mxmlc任务前设置为Flex 3 SDK的根目录。
如果你使用EXE或JAR版本的mxmlc,你可以使用FLEX_HOME以外的属性名称。
使用Ant编译你的项目的真正好处是它能把所有的目标链在一起。例如,你可能会创建一个名为compileAll的目标,它会一个接一个的调用一些单独编译的目标:
在一开始这看起来有些恐怖;但是当你熟悉Ant和配置文件后,你会发现它会大大提高你的工作效率。通过使用第三方工具比如Ant来自动化你的编译过程,你已经不会被困在只能使用单一的开发工具上了。你可以很容易的在你选择的开发工具,比如Flex Builder,FDT,TextMate,或者FlashDevelop上调用Ant来创建你的项目。
我想为Ant建造文件添加编译程序的任务。
25.9.2. 解决办法
为你的使用MXML编译器编译文件的Ant建造文件添加可执行的任务。
25.9.3. 讨论
编译对象是你要添加到你的Ant建造文件中的最常见和有用的对象。Flex应用程序是用Flex 3 SDK中的免费的命令行编译器mxmlc编译的。在你建造文件中添加了要编译的目标后,就可以自动化建造过程了:不用你再打开命令提示符或终端,Ant会自动编译所有的文件。
MXML编译器(mxmlc)有多种格式。你可以生成一个目标,然后使用可执行版的:
+展开
-XML
<!-- COMPILE MAIN -->
<target name="compileMain" description="Compiles the main application files.">
<echo>Compiling '${bin.dir}/main.swf'...</echo>
<exec executable="${FLEX_HOME}/bin/mxmlc.exe" spawn="false">
<arg line="-source-path '${src.dir}'" />
<arg line="-library-path '${FLEX_HOME}/frameworks'" />
<arg line="'${src.dir}/main.mxml'" />
<arg line="-output '${bin.dir}/main.swf'" />
</exec>
</target>
<target name="compileMain" description="Compiles the main application files.">
<echo>Compiling '${bin.dir}/main.swf'...</echo>
<exec executable="${FLEX_HOME}/bin/mxmlc.exe" spawn="false">
<arg line="-source-path '${src.dir}'" />
<arg line="-library-path '${FLEX_HOME}/frameworks'" />
<arg line="'${src.dir}/main.mxml'" />
<arg line="-output '${bin.dir}/main.swf'" />
</exec>
</target>
或者,你可以编写一个类似下面的任务,然后使用Java版的:
+展开
-XML
<!-- COMPILE MAIN -->
<target name="compileMain" description="Compiles the main application files.">
<echo>Compiling '${bin.dir}/main.swf'...</echo>
<java jar="${FLEX_HOME}/lib/mxmlc.jar" fork="true" failonerror="true">
<arg value="+flexlib=${FLEX_HOME}/frameworks" />
<arg value="-file-specs='${src.dir}/main.mxml'" />
<arg value="-output='${bin.dir}/main.swf'" />
</java>
</target>
<target name="compileMain" description="Compiles the main application files.">
<echo>Compiling '${bin.dir}/main.swf'...</echo>
<java jar="${FLEX_HOME}/lib/mxmlc.jar" fork="true" failonerror="true">
<arg value="+flexlib=${FLEX_HOME}/frameworks" />
<arg value="-file-specs='${src.dir}/main.mxml'" />
<arg value="-output='${bin.dir}/main.swf'" />
</java>
</target>
最后(或许是最好的)方式是使用Flex 3 SDK中的mxmlc任务。在25.3节中已经讲述了如何安装。为了能访问你的建造文件中的信息,你应该首先添加一个任务定义:
+展开
-XML
<!-- TASK DEFINITIONS -->
<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" />
<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" />
导入Flex任务后,你可以使用更加直观的语法编译,在诸如Eclipse一样的工具中显示错误提示。比如:
+展开
-XML
<!-- COMPILE MAIN -->
<target name="compileMain" description="Compiles the main application files.">
<echo>Compiling '${bin.dir}/main.swf'...</echo>
<mxmlc file="${src.dir}/main.mxml" output="${bin.dir}/main.swf">
<source-path path-element="${src.dir}" />
</mxmlc>
</target>
<target name="compileMain" description="Compiles the main application files.">
<echo>Compiling '${bin.dir}/main.swf'...</echo>
<mxmlc file="${src.dir}/main.mxml" output="${bin.dir}/main.swf">
<source-path path-element="${src.dir}" />
</mxmlc>
</target>
在所有的例子中,应用了相同的基本规则。你应该定义指向项目src和bin目录的属性,也需要定义指向Flex 3 SDK的属性。例子中的所有属性的名字都可以改变,除了FLEX_HOME,这个名字是固定的。FLEX_HOME属性必须在使用mxmlc任务前设置为Flex 3 SDK的根目录。
如果你使用EXE或JAR版本的mxmlc,你可以使用FLEX_HOME以外的属性名称。
使用Ant编译你的项目的真正好处是它能把所有的目标链在一起。例如,你可能会创建一个名为compileAll的目标,它会一个接一个的调用一些单独编译的目标:
+展开
-XML
<!-- COMPILE ALL -->
<target name="compileAll" description="Compiles all application files." depends="compi
leMain, compileNavigation, compileGallery, compileLibrary">
<echo>Finishing compile process...</echo>
</target>
<target name="compileAll" description="Compiles all application files." depends="compi
leMain, compileNavigation, compileGallery, compileLibrary">
<echo>Finishing compile process...</echo>
</target>
在一开始这看起来有些恐怖;但是当你熟悉Ant和配置文件后,你会发现它会大大提高你的工作效率。通过使用第三方工具比如Ant来自动化你的编译过程,你已经不会被困在只能使用单一的开发工具上了。你可以很容易的在你选择的开发工具,比如Flex Builder,FDT,TextMate,或者FlashDevelop上调用Ant来创建你的项目。
类别:flash/flex/fcs/AIR 作者:转载 日期:2010-04-29 【评论:0】
暂时没有评论!
发表留言
百度赞助
同类热门博文
- ·As+lightbox+js实现..
- ·21.8.使用Cairngorm..
- ·13.1.为ArrayCollec..
- ·18.13.通过二进制So..
- ·22.7.使用ModuleLoa..
- ·JavaScript控制Flas..
- ·6.6.动态载入外部图..
- ·flash预加载进度条p..
博格Tag
- flash/flex/fcs/AIR(752)
- Asp.Net/C#/WCF(598)
- 操作系统及应用软件(376)
- JavaScript/Ajax(330)
- SQL及数据库(134)
- 黑客技术(115)
- Asp/VBScript(111)
- HTML/WML/CSS兼容/XML(102)
- PHP/apache/Perl(96)
- 网站排名及优化(96)
- 其他(75)
- showbo日志(66)
- lucene.net/分词技术(33)
- 计算机网络(26)
- 机械重工(26)
- C#设计模式(25)
- Google Maps开发(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(11)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
最新博文
- ·PHP socket套接字学..
- ·Warning Cannot sen..
- ·php与flash as3 soc..
- ·Flash XMLSocket使用..
- ·给flash右键增加自定..
- ·flash控件html及col..
- ·Flash加载XML文件CD..
- ·Flex3中文教程--hom..
随机博文
