Crear file que guarde el time y el número de revisión de mi proyecto cuando compilo

Actualmente, el file solo conserva la última revisión. Quiero usar un file diferente donde se guarda el historial. Cada vez que se utiliza ANT, quiero que anexe el número de hora y revisión en ese file. En la pantalla de inicio solo tendré un enlace a ese file.

Así es como está escrito ahora:

<target name="compile-java" depends="prepare,compile"> <exec dir="${project.dir}" executable="tools/version.sh" output="${src.web.dir}/date_compile.jsp"> <arg line="" /> </exec> <propertyfile file="${src.web.dir}/date_compile.jsp"> </propertyfile> </target> 

Quiero agregar una nueva revisión mientras mantengo los datos de revisión anteriores también.

Esto es solo cuestión de utilizar la tarea BuildNumber o PropertyFile para crear el file de número de versión de compilation y luego leer el file para get ese número, crear también una timestamp de la compilation y luego anexar ambos a otro file.

Aquí hay una idea básica de cómo hacerlo . A partir de eso, deberías poder escribir algo como esto:

 <project default="increment"> <target name="increment"> <tstamp> <format property="build.time" pattern="yyyy-MM-dd HH:mm:ss" /> </tstamp> <propertyfile file="build.properties"> <entry key="build.number" type="int" operation="+" default="0" /> </propertyfile> <property file="build.properties" /> <echo message="Build ${build.number} on ${build.time}&#13;&#10;" append="true" file="build.history" /> </target> </project> 

Esto crea dos files: build.properties con su número de compilation (siempre el último número ya que se sobrescribe en cada compilation) y build.history que contiene una list de numbers de compilation y una timestamp de cada compilation.

EDITAR: basado en los comentarios, si version.sh emite la revisión y la date a date_compile.jsp y lo reemplaza en cada compilation, para mantener el historial, solo necesita cargar date_compile.jsp en su compilation y anexar su contenido a otro file, algo como esto:

 <target name="compile-java" depends="prepare,compile"> <exec dir="${project.dir}" executable="tools/version.sh" output="${src.web.dir}/date_compile.jsp"> <arg line="" /> </exec> <loadfile property="revision" srcfile="${src.web.dir}/date_compile.jsp" /> <echo message="${revision}&lt;br&gt;&#13;&#10;" append="true" file="${src.web.dir}/compile_history.jsp" /> </target> 

No está 100% seguro de lo que quiere, pero parece una combinación de <tstamp/> , <echo> y <propertyfile/> .

Puede usar <propertyfile> file de <propertyfile> para especificar el file de propiedad donde se almacena el número de compilation y para editarlo:

  <propertyfile file="${build.prop.file}"> <entry key="build.number" value="1" default="0" operation="+"/> </propertyfile> 

Ahora puede include ese file de propiedad en su compilation:

 <property file="${build.prop.file}"/> 

Que establecerá ${build.number} .

A continuación, obtendrás la date y la hora:

 <tstamp> <format property="build.time.stamp" pattern="yyyy-mmm-dd.hh:mm:ss-zzzzz"/> </tstamp> 

Ahora, anexarás esto a tu file de logging

 <echo append="true" file="${build.log}" message="Building build # ${build.number} on ${build.time.stamp}"/>