我的目标是用命令“git describe”的输出填充属性。 我有一个房产:
<property name="build.version" value = ""/>
我想用以下命令的输出填充它: git describe
我试过了:
<exec program='${git.executable}' outputproperty='build.version'>
<arg value='describe' />
</exec>
但与Ant不同,NAnt不支持 outputproperty :(仅输出(到文件)。
答案 0 :(得分:8)
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>
答案 1 :(得分:5)
使用trim,你可以在最后摆脱回车符。例如,在上面的示例中,在末尾添加一行来修剪字符串
<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>