为exec ANT任务启用控制台输出

时间:2010-05-24 13:02:36

标签: eclipse ant exec

在Eclipse中我正在使用以下Macrodef启动一个带有从ANT嵌入的swf的html页面:

<macrodef name="runhtml">
   <attribute name="url" />
   <attribute name="browser" default="${app.browser.firefox}" />
   <sequential>
      <exec
         executable="open"
         vmlauncher="true"
         spawn="false"
         failonerror="true">
         <arg line="-a '@{browser}'" />
         <arg line="@{url}" />
      </exec>
   </sequential>
</macrodef>

尽管swf包含了痕迹,但我没有从控制台中获取任何输出。可能导致这种情况的原因是什么?

3 个答案:

答案 0 :(得分:2)

为了从Flash获取跟踪,您需要运行Flash调试器(FDB)。幸运的是它附带了Flex SDK。 (http://www.adobe.com/devnet/flex/flex-sdk-download.html)

这是我在Ant中使用的一个示例任务,用于启动Flash调试器,而后者又会启动浏览器,因为目标是HTML文件。如果目标是SWF文件,那么它将只在独立的FDB窗口中运行。

  <target name="launch-browser">
    <echo file="${basedir}/build/.fdbinit">run file://${outputdir}/swf/index.html
continue</echo>
    <exec executable="${sdk.flex}bin/fdb" spawn="false" dir="build">
      <arg line="-unit"/>
    </exec>
  </target>

此任务将首先编写一个名为.fdbinit的文件,其中包含fdb在启动时将运行的命令。然后用-unit启动fdb,以确保它保持正确连接到ant构建器(我实际上不是100%,但它是必需的)。这将为您提供浏览器以及终端窗口中的跟踪(也就是实际的调试器控件)。

-

或者,使用原始的macrodef,如果您的计算机上安装了Flash Debug Player;您可以通过编辑mm.cfg文件并设置TraceOutputFileEnable和TraceOutputFileName选项来配置Flash Player以将跟踪写入文件。

此文件位于OSX上的/ Library / Application Support / Macromedia中。

mm.cfg的相关和其他文档: http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7fc9.html

答案 1 :(得分:0)

我有完全相同的问题。错误消息将回显到控制台,但信息消息不会回显。到目前为止我找到的唯一解决方案是将自己的echo添加到 macrodef

答案 2 :(得分:0)

似乎也是自动化的唯一方法是使用Benoit描述的.fbinit,但将每个命令放在不同的行上:

    <echo file="${BUILD.dir}/.fdbinit">run file://${outputdir}/swf/index.html
    continue</echo>