前几天本站发布了Flex2 发现之旅:使用ANT编译您的MXML文件,其中有ANT脚本有些不妥之处,这里是一些补充:

  1. 前文说copy任务是直接拷贝目录下所有文件,这里改成了只拷贝编译特定文件。
  2. 前文中编译的相关选项是直接输入的,这里改为使用Flex-config.xml文件的方式,在没有使用-load-config参数指定flex-config.xml文件前,mxmlc默认会使用$flex2_install_path/frameworks/flex-config.xml,我们这里使用自定义的flex-config.xml文件的方式,方便后续开发过程中调整编译参数,下载包中提供的flex-config.xml中我关闭了keep-generated-actionscript选项,不在保留中间as,具体Flex-config.xml文件的使用,请查看MM Flex2 Live docs
  3. 另外,前文中编译使用的是exec指令直接执行外部的mxmlc命令来编译,因为是外部命令的方式,如果mxmlc编译失败的话,Ant指令还会继续执行并提示编译成功,而不是提示编译失败。所以这里更改为使用java指令的方式,这样做的好处是,当mxmlc编译失败的情况下,mxmlc返回非0错误,停止继续执行,并提示编译失败!
  4. exec方式编译失败的显示:

    java方式编译失败的显示:

    Flex2中的$flex2_install_path/bin/mxmlc.exe实际上就是$flex2_install_path/lib/mxmlc.jar的一个win32 exe文件包装,所以我们可以直接使用java -jar mxmlc.jar的方式来代替mxmlc.exe,所以我们的编译指令改为如下:

    <java jar="${mxmlcJar}"
       fork="true"
       failonerror="true">
       <!-- 指定使用当前目录下的flex-config.xml作为默认的配置文件 -->
       <arg value="-load-config=${basedir}\flex-config.xml"/>
       <arg value="${build_path}/${mxmlFile}.mxml"/>
    </java>
  5. 最后,在编译结束的时候,删除了copy到build的临时mxml文件

完整的修正版project下载:QuickStartWithAnt.zip