10

我的目标是用命令“git describe”的输出填充属性。我有一个财产:

<property name="build.version" value = ""/>

我想用以下命令的输出填充它:git describe

我试过:

<exec program='${git.executable}' outputproperty='build.version'>
  <arg value='describe' />
</exec>

但与 Ant 不同,NAnt 不支持outputproperty :( 仅输出(到文件)。

4

2 回答 2

10

你是对的。您有resultproperty属性来保存退出代码和output属性来重定向输出。

为什么不重定向输出,然后通过loadfile任务加载文件:

<target name="foo">
  <property
    name="git.output.file"
    value="C:\foo.txt" />
  <exec program="${git.executable}" output="${git.output.file}">
    <arg value="describe" />
  </exec>
  <loadfile
    file="${git.output.file}"
    property="git.output" />
</target>
于 2013-01-19T08:24:21.293 回答
6

使用修剪,您可以摆脱最后的回车符。例如,在上面的示例中,在末尾添加一行来修剪字符串

<target name="foo">
  <property
    name="git.output.file"
    value="C:\foo.txt" />
  <exec program="${git.executable}" output="${git.output.file}">
    <arg value="describe" />
  </exec>
  <loadfile
    file="${git.output.file}"
    property="git.output" />

  <property name="git.ouput.trimmed" value="${string::trim(git.output)}" />

</target>
于 2015-07-07T09:01:49.043 回答