运行Ant exec任务时不使用;结果:";输出

运行Ant exec任务时不使用;结果:";输出,ant,exec,Ant,Exec,当Ant exec任务运行以非零退出状态完成的命令时,exec任务输出状态,例如: [exec] Result: 1 这是在没有上下文的情况下打印的,因此用户会感到困惑。 即使使用outputproperty=“someproperty”failonerror=“false”调用exec任务,也会打印该命令。 我将这种调用用于命令,例如grep,其中非零输出可能是期望的预期结果 有没有一种方法可以抑制“Result:”输出,而不对Ant进程的输出进行任何其他更改?看看下面的示例,它使用Jav

当Ant exec任务运行以非零退出状态完成的命令时,exec任务输出状态,例如:

 [exec] Result: 1
这是在没有上下文的情况下打印的,因此用户会感到困惑。 即使使用
outputproperty=“someproperty”failonerror=“false”
调用exec任务,也会打印该命令。 我将这种调用用于命令,例如
grep
,其中非零输出可能是期望的预期结果


有没有一种方法可以抑制“Result:”输出,而不对Ant进程的输出进行任何其他更改?

看看下面的示例,它使用JavaScript禁用和恢复日志记录

编译文件
迟来的回答——但也许它会帮助那些在搜索互联网时无意中发现这个问题并且不想完全禁用日志记录的人(如Chad Nouis所建议的):如果在单独的shell中启动程序,退出代码可以控制

忽略/覆盖退出代码0:

<exec executable="sh">
  <arg value="-c" />
  <arg value="cmd-with-non-0-exit.sh || exit 0" />
</exec>

将退出代码0存储到属性:

<exec executable="sh" outputproperty="cmdOutput">
  <arg value="-c" />
  <arg value="cmd-with-non-0-exit.sh || echo $?" />
</exec>

然后可以从
$cmdOutput

解析退出代码,即使这样做有效(我还没有尝试),这是太多的代码,只是为了消除一行稍微烦人的日志输出。。。
<exec executable="sh" outputproperty="cmdOutput">
  <arg value="-c" />
  <arg value="cmd-with-non-0-exit.sh || echo $?" />
</exec>