Ant 批量编译as文件

这里有一篇关于Ant的文章,写得很祥细:http://www.cnblogs.com/skynet/archive/2012/03/29/2423720.html

项目的皮肤文件被分割成许多个swf文件,每次发版本的时候,都要一个一个编译。我的目标是用Ant 自动批量编译。

 

# 设置FLEX SDK的路径
FLEX_HOME=D:/Program Files/Adobe/Adobe Flash Builder 4.6/sdks/4.5.1
 
# 设置源文件路径
# {$basedir} 就是本文件所在的目录
SRC_DIR =${basedir}/src
 
# libs目录,一般用来放swc文件
LIBS_DIR =${basedir}/libs
 
OUT_PUT = debug

# 这个就是Flash Builder建立的bin-debug
DEPLOY_DIR = ${basedir}/${OUT_PUT}



LOCALE = en_US

ANT_LIB = D:/Program Files/ant/lib

这是build.properties文件。把他和build.xml放在相同的目录。这个文件的作用是定义一些变量,通过${name} 可以引用到相应的变量值

<project name="UI" default="build">
  
    <!-- 载入配置文件 -->
    <property file="build.properties" />
    
    <!-- 可以定义变量 -->
    <!--property name="dist.home" value="./dist" /-->
    <!-- 确定flexTasks.jar的位置 -->
    <taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar"/> 
    <taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${FLEX_HOME}/ant/lib/ant-contrib.jar"/>
    
    <target name="build" depends="init,compile" />
 
    <!-- 清理部署目录中的内容 -->
    <target name="init">
        <delete dir="${DEPLOY_DIR}/" />
    </target>
 
    <target name="compile">
        <for param="file">
            <path>
                <fileset dir="${SRC_DIR}">
                    <include name="*.as" />
                </fileset>
            </path>
            <sequential>
                <propertyregex override="yes" property="compile.target.name" input="@{file}" regexp="(.*)src(.*)(as)" replace="\1${OUT_PUT}\2swf" />
                   <echo message="@{file}  ${compile.target.name}"/>
                <mxmlc
                        file="@{file}"
        
                        output="${compile.target.name}"
        
                        locale="${LOCALE}"
        
                        static-rsls="true"
        
                        accessible="true"
                        
                        maxmemory="1024m" 
                        
                        fork="true" 
        
                        debug="false"
        
                    >
                  <jvmarg value="-Xmx2048m"/>
                  <jvmarg value="-Xms512m"/>
                  <jvmarg value="-XX:MaxPermSize=512m"/>
                  <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
                  <source-path path-element="${SRC_DIR}"/>
                  <library-path dir="${LIBS_DIR}" includes="*" append="true"/>
                </mxmlc>
            </sequential>
        </for>
    </target>
</project>
<property file="build.properties" />

这句话是把刚刚定义的变量加载进来。

 

有可能你需要下载一个ant-contrib.jar  把它放到 flexTasks.jar相同目录就可以了。

 

posted @ 2013-01-05 18:46  川上约  阅读(378)  评论(0)    收藏  举报