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

原文地址:https://www.cnblogs.com/god_bless_you/p/1784114.html