¿Es posible suprimir la marca de tiempo automática en un archivo de propiedades Ant?

Cuando compilo mi proyecto en Netbeans, quiero generar automáticamente un archivo que incluya un número de compilación que se incremente y fecha automáticamente, así que agregué lo siguiente al archivo build.xml de mi proyecto.

<target name="-pre-jar" >
    <propertyfile file="${src.dir}\buildstring.txt" >
        <entry key="devbuild" value="1" type="int" operation="+"/>
        <entry key="devbuildtime" type="date" value="now" pattern="yyyy MM dd hh_mm" />
    </propertyfile>
</target>

Cuando se ejecuta la tarea Ant, Ant agrega automáticamente un sello de fecha como la primera línea del archivo

#Tue, 12 Jun 2012 16:09:24 -0500
devbuild=8
devbuildtime=2012 06 12 04_09

¿Hay alguna forma de evitar que Ant agregue automáticamente la primera línea con el comentario de fecha?

preguntado el 12 de junio de 12 a las 22:06

2 Respuestas

La Archivo de propiedad La tarea Ant se implementa usando un java.util.Propiedades objeto. los Properties.store() El método se documenta con la siguiente nota:

A continuación, siempre se escribe una línea de comentario, que consta de un carácter ASCII #, la fecha y hora actuales (como si las hubiera producido el método toString de Date para la hora actual) y un separador de línea generado por el Writer.

Por lo tanto, el comentario de fecha no se puede deshabilitar usando el PropertyFile tarea. Quitar el comentario de fecha requeriría una solución diferente, como el procesamiento posterior del archivo de propiedades o escribir el archivo de propiedades usando una técnica diferente (por ejemplo, usando un script Ant o una tarea Ant personalizada).

Ver: Eliminar comentarios en el archivo de propiedades java

contestado el 23 de mayo de 17 a las 13:05

Gracias, terminé usando el archivo de propiedades para realizar un seguimiento del número de compilación de incremento automático solamente. Agregué una segunda tarea que lee el número de compilación del archivo de propiedades del archivo y luego uso ECHO para crear un archivo buildstring.txt sin comentarios. Un poco tedioso, pero funciona. - jayg

Aquí está mi solución: 1. escriba las propiedades en un archivo temporal 2. copie el archivo temporal en el archivo de propiedades final usando filterchain para omitir la primera línea 3. eliminar el archivo temporal

<propertyfile file="temp.properties" >
    <entry  key="property.1" value="value1"/>
    <entry  key="property.2" value="value2"/>
</propertyfile>

<copy file="temp.properties" tofile="final.properties">
  <filterchain>
      <headfilter skip="1"/>
  </filterchain>
</copy>
<delete file="temp.properties"/>

contestado el 27 de mayo de 13 a las 11:05

Ejecuté el código anterior (solo en mi caso lo hago dentro del -ivy-retrieve objetivo) . Obtengo: "El error no puede encontrar la carpeta de páginas web. Abra el archivo de propiedades del proyecto y en la categoría Fuentes busque la carpeta de páginas web correcta". Y en el registro: "no se pueden crear archivos de clase para los directorios de origen". Y elimina mis carpetas "Páginas web" y "Paquetes de origen". ¿Tienes idea de lo que está pasando? - ellos uv

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.