什么是 Flex Ant Tasks?
Ant (Another Neat Tool) 是一种脚本编写工具,可以使用它为项目创建自动化构建流程。它起初是为 Java 项目创建的。它使用基于 XML 的语法列出脚本文件中的目标和依赖性,并用命令行调用脚本。
以下是示例任务的简要列表,您可以在您的项目中使用此ANT脚本模板实现构建流程自动化:
1. 编译 Flex 应用程序、模块和组件库
2. 使用和部署 RSL
3. 使用 ASDoc 创建项目文档
4. 为项目的输出 SWF 文件创建 HTML 打包程序
Flex Ant Tasks 包括 mxmlc 和 compc 编译器任务,它们扩展了 Java Ant Tasks。因此,您可以根据需要使用 Java Ant Tasks 的任何可用属性。
脚本模板:
build.properties文件:
# change this to your Flex SDK directory path
FLEX_HOME= D:/Program Files/Adobe Flash Builder 4/sdks/4.1.0
# this points to your project's src directory
# {$basedir} is a default variable that can be used in any Ant script
# and it points to the project's root folder
SRC_DIR =${basedir}/src
# points to the project's libs directory
LIBS_DIR =${basedir}/libs
# this is the folder we want to publish the swf to
DEPLOY_DIR = ${basedir}/DEPLOY
# defines the Flex framework files location
FLEX_FRAMEWORK = ${FLEX_HOME}/frameworks/libs
# this property defines the doc directory, which will store your created ASDocs later in the article
DOC_DIR =${basedir}/DOC
# defines the title for your ASDoc pages
DOC_TITLE ="Your doc title"
# defines the footer for your ASDoc pages
DOC_FOOTER = "Copyright 2010 My Company"
# points to your asdoc.exe for ASDoc creation later
asdoc.exe =${FLEX_HOME}/bin/asdoc.exe
注:asdoc.exe在不同操作系统下值不同,在Flash和AIR程序下值也不同
如Windows下的AIR程序时,其值为aasdoc.bat
build.xml文件:
<project name="Flex Ant Tasks Build Script" default="compile flex ant tasks project">
<!-- load previously defined configuration properties file -->
<property file="build.properties" />
<!-- points to our flexTasks.jar we copied to the libs folder to distribute with the project -->
<taskdef resource="flexTasks.tasks" classpath="${basedir}/libs/flexTasks.jar"/>
<target name="compile flex ant tasks project" depends="init, compile flex project, build doc, copyRSLs, wrapper, createSWC" />
<!-- delete and recreate the DEPLOY and DOC dirs -->
<target name="init">
<delete dir="${DEPLOY_DIR}" />
<mkdir dir="${DEPLOY_DIR}" />
<delete dir="${DOC_DIR}" />
<mkdir dir="${DOC_DIR}" />
</target>
<!-- ASDoc creation -->
<target name="build doc" depends="init">
<exec executable="${asdoc.exe}" failonerror="true">
<arg line='-doc-sources ${SRC_DIR}' />
<arg line='-external-library-path ${LIBS_DIR}' />
<arg line='-warn-level-not-supported=false'/>
<arg line='-main-title ${DOC_TITLE}' />
<arg line='-window-title ${DOC_TITLE}' />
<arg line='-footer ${DOC_FOOTER}' />
<arg line='-output ${DOC_DIR}' />
</exec>
</target>
<!-- Build and output the Main.swf-->
<target name="compile flex project" depends="init">
<mxmlc file="${SRC_DIR}/Main.mxml" output="${DEPLOY_DIR}/Main.swf">
<load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
<source-path path-element="${FLEX_HOME}/frameworks"/>
<compiler.debug>false</compiler.debug>
<runtime-shared-library-path
path-element="${FLEX_FRAMEWORK}/framework.swc">
<url rsl-url="framework_4.1.0.16076.swf"/>
<url rsl-url="framework_4.1.0.16076.swz"/>
</runtime-shared-library-path>
</mxmlc>
</target>
<!-- HTML Wrapper -->
<target name="wrapper">
<html-wrapper
title="Flex Ant Tasks Part II"
file="flext_ant_pt_II_tasks.html"
height="500"
width="500"
bgcolor="#000000"
application="Main"
swf="Main"
version-major="9"
version-minor="0"
version-revision="0"
history="true"
output="${DEPLOY_DIR}"/>
</target>
<!-- create SWC -->
<target name="createSWC">
<compc
output="${DEPLOY_DIR}/MyComps.swc"
include-classes="com.pxldesigns.flexTasks.LabelBuilder">
<source-path path-element="${SRC_DIR}"/>
</compc>
</target>
<!-- copy only the Flex Framework files into the DEPLOY_DIR to use for RSLs -->
<target name="copyRSLs">
<copy todir="${DEPLOY_DIR}" file="${FLEX_HOME}/frameworks/rsls/framework_4.1.0.16076.swf"/>
<copy todir="${DEPLOY_DIR}" file="${FLEX_HOME}/frameworks/rsls/framework_4.1.0.16076.swz"/>
</target>
</project>
注:
1. flexTasks.jar文件在不同的SDK下是不同的,确保工程libs目录下的与{SDK}\ant\lib下的相同。
2. CopyRSLs Task在不同的SDK下,其copy的文件是不同的。另外CopyRSLs Task copy的文件应与compile flex project task下的保持一致。
转载地址:http://www.cnblogs.com/god_bless_you/archive/2010/07/24/1784114.html