在ant exec任务中有条件地重定向输出
是否有一种方法可以有条件地将输出重定向到属性或标准输出流,如下面的非工作示例所示在ant exec任务中有条件地重定向输出,ant,Ant,是否有一种方法可以有条件地将输出重定向到属性或标准输出流,如下面的非工作示例所示 上面的示例默认情况下将输出重定向到属性STDOUT。相反,我希望它被定向到stdout流 我可以创建mytask_,并将_stdout作为上述宏的副本,并删除exec outputproperty,但这违反了DRY原则 有什么好方法可以做到这一点吗?有两种Ant功能可以结合使用以获得所需的功能 首先,一个可以被传递任何你想要的 其次,可以使用在属性中捕获命令的输出 我在Windows机器上运行了以下Ant脚本,
上面的示例默认情况下将输出重定向到属性STDOUT
。相反,我希望它被定向到stdout流
我可以创建mytask_,并将_stdout作为上述宏的副本,并删除exec outputproperty,但这违反了DRY原则
有什么好方法可以做到这一点吗?有两种Ant功能可以结合使用以获得所需的功能 首先,一个
可以被传递任何你想要的
其次,可以使用
在属性中捕获
命令的输出
我在Windows机器上运行了以下Ant脚本,以便可以使用cmd.exe的echo命令。将cmd.exe替换为my.exe:
<project name="exec-redirector-example" default="run">
<macrodef name="mytask">
<attribute name="message"/>
<element name="myredirector" optional="true"/>
<sequential>
<exec executable="cmd.exe">
<arg value="/c"/>
<arg value="echo"/>
<arg value="@{message}"/>
<myredirector/>
</exec>
</sequential>
</macrodef>
<target name="run">
<!-- exec outputs to STDOUT by default -->
<mytask message="To STDOUT">
</mytask>
<!-- exec outputs to a property in this example -->
<mytask message="To property">
<myredirector>
<redirector outputproperty="my.property"/>
</myredirector>
</mytask>
<echo>${my.property}</echo>
</target>
</project>
${my.property}
这看起来很有希望。很快就会测试的:D谢谢!