Ant <exec>输出未在属性中捕获

时间:2017-03-23 14:42:15

标签: ant

我试图将Ant执行命令的输出转换为输出属性并回显该属性。我们应该能够查看命令的输出。我使用了下面的代码,但是我无法查看Ant执行的输出。

<exec executable="${exe.baroverride}"
      spawn="false"
      failonerror="true"
>
    <redirector outputproperty="baroverride.out"
        errorproperty="baroverride.err"/>
</exec>
<logmsg message="Bar Override Output for the bar file ${iib.build.target.bar.filename} ${baroverride.out}"/>

1 个答案:

答案 0 :(得分:1)

首先,Ant中没有<logmsg>任务。 <logmsg>可能来自自定义<macrodef><taskdef>。除非您提供代码,否则我们无法帮助您了解<logmsg>的工作原理。

其次,<redirector>将输出拆分为两个属性......

 <redirector outputproperty="baroverride.out"
     errorproperty="baroverride.err"/>

...但是,<logmsg>来电仅引用baroverride.out ...

<logmsg message="... ${baroverride.out}"/>

如果<exec>写信给baroverride.err,则上述<logmsg>来电不会显示。

考虑完全删除<redirector>并使用outputproperty的{​​{1}}属性代替......

<exec>