estoy en la misma situación para comparar dos archivos y cambiar en diferentes objetivos en función de los archivos o archivos que coincida desajuste ...
Aquí está el código:
<project name="prospector" basedir="../" default="main">
<!-- set global properties for this build -->
<property name="oldVersion" value="/code/temp/project/application/configs/version.ini"></property>
<property name="newVersion" value="/var/www/html/prospector/application/configs/version.ini"></property>
<target name="main" depends="prepare, runWithoutDeployment, startDeployment">
<echo message="version match ${matchingVersions}"></echo>
<echo message="version mismatch ${nonMatchingVersion}"></echo>
</target>
<target name="prepare">
<!-- gets true, if files are matching -->
<condition property="matchingVersions" value="true" else="false">
<filesmatch file1="${oldVersion}" file2="${newVersion}" textfile="true"/>
</condition>
<!-- gets true, if files are mismatching -->
<condition property="nonMatchingVersion" value="true" else="false">
<not>
<filesmatch file1="${oldVersion}" file2="${newVersion}" textfile="true"/>
</not>
</condition>
</target>
<!-- does not get into it.... -->
<target name="startDeployment" if="nonMatchingVersions">
<echo message="Version has changed, update gets started..."></echo>
</target>
<target name="runWithoutDeployment" if="matchingVersions">
<echo message="Version equals, no need for an update..."></echo>
</target>
Las propiedades son correctos y cambian al cambiar el contenido del archivo. la tarea para NonMatchingVersions nunca se inicia.
Hola Tonio, gracias por su respuesta. Está funcionando ... pero tengo alguna duda: -> – nitinJi
Después de hacer una tarea de condición, quiero hacer algunas cosas como imprimir el valor de ** propiedad **. si los archivos son iguales, debe imprimir ** verdadero ** y si no debe imprimir ** falso ** pero para mí solo está imprimiendo ** falso ** incluso si los archivos son iguales. ' \t ' –
nitinJi
¡No puedo hacer que funcione y me vuelve loco! Por alguna extraña razón, la tarea de coincidencia de archivos en mi secuencia de comandos siempre devuelve "falso", excepto cuando el archivo 1 y el archivo 2 apuntan al mismo archivo. Pero tan pronto como apunto a diferentes archivos (incluso si uno es una copia 1: 1 del otro) el valor es falso. ¿Alguna idea de por qué podría ser así? Esto está en Windows 10 usando la versión ant 1.8.2 – mmo