Flex Ant脚本模板

Flex Ant脚本模板 

什么是 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下的保持一致。

你可能感兴趣的:(Flex)