ANT:编译SWC

编译SWC使用的是compc任务,compc需要几个重要的参数:

1、输出路径

2、包含的类

3、源路径

其中第2个参数是比较难拿到的,需要使用ANT的几个其他的方法来将路径转换了类的完整路径,先看完整的代码:

<target name="buildLib">
<path id="paths">
<pathelement path="${basedir}/../"/>
</path>
<pathconvert dirsep="/" property="covbasedir" refid="paths"/>
<fileset dir="${covbasedir}/src" id="files">
<include name="**/*.as"/>
</fileset>
<pathconvert property="classes" pathsep=" " dirsep="." refid="files">
<map from="\" to="/"/>
<map from="${covbasedir}/src/" to=""/>
<mapper>
<chainedmapper>
<globmapper from="*.as" to="*"/>
</chainedmapper>
</mapper>
</pathconvert>

<echo message="${classes}"/>
<compc output="${OUTPUT_DIR}/easily.swc" include-classes="${classes}"
optimize
="true" benchmark="true" strict="true" actionscript-file-encoding="utf-8"
locale
="en_US" allow-source-path-overlap="true"
use-resource-bundle-metadata
="true">
<source-path path-element="${covbasedir}/src"/>

<compiler.external-library-path dir="${LIBS_DIR}" append="true">
<include name="*.swc"/>
</compiler.external-library-path>
</compc>
</target>

路径转换需要经过以下几个步骤:

1、拿到所有的.as文件的完整路径,使用空格将所有路径分开,比如"c:\workspace\easily\src\com\easily\test\a1.as c:\workspace\easily\src\com\easily\test\a2.as"

2、然后将这个字符串中的项目下的src路径替换成空字符串,结果是:"com\easily\test\a1.as com\easily\test\a2.as"

3、接着将其中的.as也换成空,结果是:"com\easily\test\a1 com\easily\test\a2"

4、最后一步,将"\"替换成".",结果是:"com.easily.test.a1 com.easily.test.a2"

OK,已经拿到了所有的类,以" "分开,在compc中,将include-classes="${classes}"

转载于:https://www.cnblogs.com/yili16438/archive/2011/10/12/2208513.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值