Ant имеет задачу uptodate
, чтобы проверить, актуальна ли цель, файл по времени, из набора исходных файлов.Я не совсем понимаю, какова ваша зависимость, поскольку задача XSLT может создать несколько файлов (в результате чего будет несколько целей) или если она создаст один файл.Один из ваших комментариев подразумевает один файл.
Ниже приведен один из способов использования uptodate
.Вы в основном используете задачу, чтобы установить свойство, которое затем может быть помещено в атрибут unless
цели:
<property name="file.that.depends.on.snippets"
location="some/path"/>
<property name="snippets.file"
location="xxxx/pages/${doc.locale}/snippets.xml"/>
<target name="process-snippets"
unless="snippets.uptodate"
depends="snippets-uptodate-check">
<xslt basedir="xxxx/pages/${doc.locale}"
destdir="xxxx/dir/${doc.locale}"
includes="*.xml"
excludes="snippets.xml"
style="build/xxxx/${doc.locale}/myStyle.xsl">
<param name="lang" expression="${doc.locale}"/>
<xmlcatalog refid="docDTDs"/>
</xslt>
</target>
<target name="snippets-uptodate-check">
<uptodate property="snippets.uptodate"
targetfile="$file.that.depends.on.snippets">
<srcfiles dir="xxxx/pages/${doc.locale}"
includes="*.xml"
excludes="snippets.xml"/>
</uptodate>
</target>