我正在尝试将 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}"/>
首先,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>
,改用<exec>
的outputproperty
属性...
<exec executable="${exe.baroverride}"
spawn="false"
failonerror="true"
outputproperty="baroverride.out"
/>
<echo>baroverride.out: ${baroverride.out}</echo>