dependset
任務會比較一組來源與一組目標檔案。如果任何來源最近修改的時間比任何目標檔案都新,則會移除所有目標檔案。
來源和目標檔案透過巢狀的 資源集合 指定;來源可以是任何類型的資源,而目標則僅限於檔案。至少需要一組來源和一組目標。
當您想要使用萬用字元包含或排除模式,且不關心遺失的檔案時,請使用 FileSet。當您想要將不存在的檔案視為過期時,請使用 FileList。如果任何來源或目標 FileList 中有任何不存在的檔案,則會移除所有目標檔案。
DependSet 可用於擷取無法或無法透過演算法判斷的相依性。例如,<style>
任務只會比較來源 XML 檔案和 XSLT 樣式表與目標檔案,以判斷是否要重新設定來源樣式。使用 dependset
可以將此相依性檢查擴充到包括 DTD 或 XSD 檔案,以及主樣式表匯入的其他樣式表。
屬性 | 說明 | 必要 |
---|---|---|
verbose | 使任務列出所有已刪除的目標檔案,以及刪除原因。 | 否 |
<sources>
元素是 Union,其中可以巢狀任意資源集合。自 Apache Ant 1.7 起
巢狀的 <srcfileset>
元素指定 FileSet。此檔案集中包含的所有檔案都將與包含在所有 <targetfileset>
檔案集和 <targetfilelist>
檔案清單中的所有檔案進行比較。可以指定多個 <srcfileset>
檔案集。
巢狀的 <srcfilelist>
元素指定 FileList。此檔案清單中包含的所有檔案都將與包含在所有 <targetfileset>
檔案集和 <targetfilelist>
檔案清單中的所有檔案進行比較。可以指定多個 <srcfilelist>
檔案清單。
自 Ant 1.7 起
<targets>
元素是 Path,因此可以包含任何基於檔案系統的資源。
巢狀的 <targetfileset>
元素指定 FileSet。此檔案集中包含的所有檔案都將與包含在所有 <srcfileset>
檔案集和 <sourcefilelist>
檔案清單中的所有檔案進行比較,如果任何檔案較舊,則會將其全部刪除。可以指定多個 <targetfileset>
檔案集。
巢狀的 <targetfilelist>
元素指定 FileList。此檔案清單中包含的所有檔案都將與包含在所有 <srcfileset>
檔案集和 <sourcefilelist>
檔案清單中的所有檔案進行比較,如果任何檔案較舊,則會將其全部刪除。可以指定多個 <targetfilelist>
檔案清單。
如果下列檔案比它們的來源 XML 檔案的 DTD、
<dependset> <srcfilelist dir = "${dtd.dir}" files = "paper.dtd,common.dtd"/> <srcfilelist dir = "${xsl.dir}" files = "common.xsl"/> <srcfilelist dir = "${basedir}" files = "build.xml"/> <targetfileset dir = "${output.dir}" includes = "**/*.html"/> </dependset>
如果上述範例中的任何來源不存在,則所有目標檔案也會被移除。若要忽略遺失的來源,請使用檔案集而非檔案清單作為來源。