NetBull
Erfahrenes Mitglied
Moin,
ich hab ein ANT Build das zwei Dateien vergleichen soll.
Wenn die auf Text-Basis gleich sind, dann soll anders verfahren werden als wenn Sie das nicht sind.
Hier der Code:
Die beiden "conditional properties" arbeiten richtig denn bei gleichem Inhalt der Dateien bekomme ich folgende Ausgabe:
Aber wenn die Dateien unterschiedlich sind, bekomme ich diese Ausgabe:
Es fehlt die erwartete Ausgabe:
Die Variablen sind richtig gesetzt....
Weis jemand was hier falsch läuft. Sicher übersehe ich nur eine Kleinigkeit.
LG NetBu||
ich hab ein ANT Build das zwei Dateien vergleichen soll.
Wenn die auf Text-Basis gleich sind, dann soll anders verfahren werden als wenn Sie das nicht sind.
Hier der Code:
Code:
<project name="project" 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/project/application/configs/version.ini"></property>
<target name="main" depends="prepare, startDeployment, runWithoutDeployment">
<echo message="version match ${matchingVersions}"></echo>
<echo message="version mismatch ${nonMatchingVersion}"></echo>
</target>
<target name="prepare">
<!-- gibt true wenn die Dateien gleich sind -->
<condition property="matchingVersions" value="true" else="false">
<filesmatch file1="${oldVersion}" file2="${newVersion}" textfile="true"/>
</condition>
<!-- gibt true wenn die Dateien nicht gleich sind -->
<condition property="nonMatchingVersion" value="true" else="false">
<not>
<filesmatch file1="${oldVersion}" file2="${newVersion}" textfile="true"/>
</not>
</condition>
</target>
<!-- komme einfach nicht hier rein.... -->
<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>
</project>
Die beiden "conditional properties" arbeiten richtig denn bei gleichem Inhalt der Dateien bekomme ich folgende Ausgabe:
Code:
prepare:
startDeployment:
runWithoutDeployment:
[echo] Version equals, no need for an update...
main:
[echo] version match true
[echo] version mismatch false
BUILD SUCCESSFUL
Total time: 0 seconds
Aber wenn die Dateien unterschiedlich sind, bekomme ich diese Ausgabe:
Code:
prepare:
startDeployment:
runWithoutDeployment:
main:
[echo] version match false
[echo] version mismatch true
BUILD SUCCESSFUL
Total time: 0 seconds
Es fehlt die erwartete Ausgabe:
Code:
Version has changed, update gets started...
Weis jemand was hier falsch läuft. Sicher übersehe ich nur eine Kleinigkeit.
LG NetBu||