La balise uptodate
Syntaxe :
Définition : <uptodate>
La balise uptodate crée une propriété du nom de votre choix (attribut property
).
La valeur de cette propriété sera true
si le targetfile
est plus récent que le srcfile
.
Méthode : Évitez des transformations XSLT inutiles
CTRL+C pour copier, CTRL+V pour coller
1
2
<project name="project" default="default">
3
4
<!-- Est-ce que le fichier target est plus récent que le fichier source? -->
5
<uptodate property="myUpToDate" srcfile="src.xml" targetfile="target.xml" />
6
7
<!-- ... -->
8
<target name="xsltransform" unless="myUpToDate">
9
<xslt style="style.xsl" in="src.xml" out="target.xml" />
10
</target>
11
<!-- ... -->
12
</project>
<?xml version="1.0" encoding="UTF-8"?> <project name="project" default="default"> <!-- Est-ce que le fichier target est plus récent que le fichier source? --> <uptodate property="myUpToDate" srcfile="src.xml" targetfile="target.xml" /> <!-- ... --> <target name="xsltransform" unless="myUpToDate"> <xslt style="style.xsl" in="src.xml" out="target.xml" /> </target> <!-- ... --> </project>
Ici, la target xsltransform est exécutée uniquement si myUpToDate
est false
.
Or myUpToDate
n'est false
que lorsque src.xml est plus récent que target.xml.
Remarque : Différence entre "if" et "unless"
Lorsque dans une tâche Ant :
if
est utilisé, la tâche n'est exécutée que siproperty
esttrue
.unless
est utilisé, la tâche n'est exécutée que siproperty
estfalse
.