Ant:使用exec与Git一起抓取提交文件的修订并输出到属性文件



我正在设置一个Ant文件,以便从Bitbucket获取提交修订并将该值输出到名称中。属性文件,我有一个代码。版本=12345行代码。我想用当前版本号更新该值。这是我现在的文件:

<property name="site" value="${dir}" />
<property name="site.properties" value="../${site}/site.properties" />
<target name="get-core-version">
    <exec executable="git" outputproperty="git.version">
        <arg value="log" />
        <arg value="--pretty=format:%h" />
        <arg value="-1" />
    </exec>
    <propertyfile file="${site.properties}" comment="Core code revision number">
        <entry key="core.version" value="${git.version}" />
    </propertyfile>
</target>

现在,当我运行上面的代码时,它返回一个0。但是,如果我通过命令行运行它,一切正常,并返回我所期望的结果。

我从属性文件中的上述代码得到的结果是:
#Core code revision number
#Fri, 02 Oct 2015 16:10:40 -0400

core.version=b3cd3d7

代码。Version首先由result属性设置(顺便说一句,这是exec的退出代码)。Ant不允许改变属性值,所以loadfile不会重置code.version。尝试从代码中重命名结果属性。将echo移到loadfile之后,就可以得到你想要的结果。

<project name="project" default="get-core-version" basedir=".">
    <property name="site" value="${dir}" />
    <property name="site.properties" location="${site}/site.properties" />
    <target name="get-core-version">
        <exec executable="git" failonerror="true" resultproperty="get.exit.code" output="${site.properties}">
            <arg value="log" />
            <arg value="--pretty=oneline" />
            <arg value="HEAD" />
            <arg value="-1" />
            <arg value="--" />
            <arg value="${site}" />
        </exec>
        <echo message="Git Status: ${get.exit.code}" />
        <loadfile srcFile="${site.properties}" property="core.version" />
        <echo message="Core Version: ${core.version}" />
    </target>
</project>

一旦我改变了网站。当我运行:ant -Ddir=rice-tools-test时,删除属性文件行,我得到:

Buildfile: /r/eghm_rice_20150804/build.xml
get-core-version:
     [echo] Git Status: 0
     [echo] Core Version: 25815faedd7e5c2d4bcf3ab358de36ebb8715def Extract Highlighting from WebDriverUtils to WebDriverHighlightHelper.
BUILD SUCCESSFUL
Total time: 0 seconds

相关内容

  • 没有找到相关文章

最新更新