如何捕获ant内部的antcall输出?

时间:2012-06-01 14:06:19

标签: ant

我有一个Ant脚本,我在Eclipse中运行,它在控制台中输出如下:

buildStuff:
     [echo] Building <project>
doStuff:
syncStuff:
     [sync] Copying 1 file to <directory>
doOtherStuff:
callWebservice:
     [http] HTTP Request
     [http] ********************
     [http] URL:        <url>
     [http] Method:     GET
     [http] HTTP Response
     [http] ********************
     [http] Status:     200
     [echo] [callWebservice] Success


我想将部分/全部输出放入ant脚本中的属性中。

使用exec任务,我可以指定“outputproperty”属性,但 不适用于antcall任务。

那么,如何从ant中访问或重定向控制台输出?

1 个答案:

答案 0 :(得分:4)

好的,找到了有用的东西......

record 任务可以侦听输出并将其发送到文件。

显然它不允许相对路径 - 文件创建在与构建脚本相同的目录中(与基线值无关)。

然后可以使用loadfile任务将其放入属性中,然后delete进行清理。

将记录器输出直接指向属性会更好,但无论出于何种原因,这似乎都不是一种选择。

总之,这有效:

<record name="${CurProject}.status" />

<echo>Building ${CurProject}</echo>
etc...

<record name="${CurProject}.status" action="stop" />
<loadfile srcFile="build/${CurProject}.status" property="Status" />
<delete file="build/${CurProject}.status" />