今天新构建了一个Flex Library project项目,但是发现其自动编译的出的swc文件名是无法定义的,自动产生一个跟project name相同的swc文件。这个很不爽,于是决定采用ant来自己编译。
首先可以参考 http://blog.jodybrewster.net/2008/04/09/installing-ant-in-flex-builder-3/ 这篇文档,在Flex Builder中安装ant enviroment支持。
构建build.xml和build.properties文件,如下:
- ######FlexProperties##############################
- #changethispathtoyourflexsdkdirectory
- #Use"/"inyourdirectorypathe.g.C:/FlexSDK/3.0.0
- FLEX_HOME=D:/IDE/Adobe/FlexBuilder3/sdks/3.0.0
- ######ProjectProperties###########################
- src-dir=${basedir}/src
- swc-file=sample.swc
- <projectname="AntbuildSWCsample"basedir="."default="buildSWC">
- <!--loaduserconfigurationproperties-->
- <propertyfile="build.properties"/>
- <taskdefresource="flexTasks.tasks"classpath="${FLEX_HOME}/ant/lib/flexTasks.jar"/>
- <targetname="prepareEnv">
- <mkdirdir="${basedir}/swc"/>
- </target>
- <targetname="clear"depends="prepareEnv">
- <deletefile="${basedir}/swc/${swc-file}"/>
- </target>
- <targetname="buildSWC"depends="clear">
- <filesetdir="${src-dir}"id="src.files">
- <includename="**/**"/>
- </fileset>
- <echomessage="${src.files}"/>
- <pathconvert
- property="evaFramework_classes"
- pathsep=""
- dirsep="."
- refid="src.files"
- >
- <mapfrom="/"to="/"/>
- <mapfrom="${src-dir}/"to=""/>
- <mapper>
- <chainedmapper>
- <globmapperfrom="*.as"to="*"/>
- </chainedmapper>
- </mapper>
- </pathconvert>
- <echomessage="${evaFramework_classes}"/>
- <compcoutput="${basedir}/swc/${swc-file}"
- include-classes="${evaFramework_classes}">
- <source-pathpath-element="${src-dir}"/>
- </compc>
- </target>
- </project>
运行ant编辑既可。
更详细和复杂的编译环境,参考http://blog.jodybrewster.net/2008/04/09/installing-ant-in-flex-builder-3/ 这篇文档。