Ant: Utilice el ejecutor con Git para tomar la revisión de confirmación de file y salida al file de propiedad

Estoy trabajando en la configuration de un file Ant para tomar la revisión de confirmación de Bitbucket y la salida de ese valor en un file name.properties donde tengo una línea de código code.version = 12345. Quiero actualizar ese valor con el número de revisión actual. Esto es lo que tengo ahora:

<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> 

En este momento, cuando ejecuto lo anterior, devuelve 0. Pero, si lo ejecuto a través de la command-line, todo está bien y devuelve lo que espero de él.

El resultado que obtengo del código anterior dentro del file de properties es:

 #Core code revision number #Fri, 02 Oct 2015 16:10:40 -0400 core.version=b3cd3d7 

code.version se establece primero por la propiedad del resultado (que es el código de salida del ejecutivo, por cierto). Ant no permite modificar los valores de propiedad, por lo que loadfile no restablece code.version. Intente cambiar el nombre de la propiedad resultado de code.version a otra cosa y mueva el eco después de que el file load le proporcione lo que desea.

 <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> 

Una vez que cambio el site.properties como arriba y elimino la línea del file de propiedad cuando corro: ant -Ddir=rice-tools-test Obtengo:

 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