使用 ANT 更新带有 exec 输出的 YML 文件

Use ANT to update a YML file with exec output

我有一个 ANT 任务当前将最后一个 git 短提交哈希写入版本文件:

<target name="write-version-file-uat">
    <exec executable="git" failonerror="true" output="${basedir}/some/path/version.html.twig">
        <arg value="rev-parse"/>
        <arg value="--short"/>
        <arg value="HEAD"/>
        <redirector>
            <outputfilterchain>
                <striplinebreaks />
                <trim />
            </outputfilterchain>
        </redirector>
    </exec>
</target>

我想更改此任务以更新 version.yml.dist 文件中的变量:

parameters:
    version: version_value

并将新文件输出到version.yml

parameters:
    version: this2is1ahash

如何更改重定向器以写入此变量?

我是否需要创建一个临时版本文件,然后 运行 另一个任务来获取该内容并更新变量,或者我可以一次完成所有这些吗?

我已经使用以下方法实现了上述目标,但我不确定这是最干净的解决方案:

<target name="write-version-file">
    <exec executable="git" failonerror="true" output="${basedir}/some/path/version.yml">
        <arg value="describe"/>
        <arg value="--tags"/>
        <redirector>
            <outputfilterchain>
                <striplinebreaks />
                <trim />
                <prefixlines prefix="parameters: ${line.separator}    version: " />
            </outputfilterchain>
        </redirector>
    </exec>
</target>