同步

自 Apache Ant 1.6 起

描述

從一個或多個 資源集合 中定義的檔案同步目標目錄。

目標目錄中任何未與至少一個巢狀資源集合相符的檔案都會被移除。也就是說,如果您在來源中排除一個檔案,而目標目錄中存在同名的檔案,它將從目標中移除。

參數

屬性 描述 必要
todir 與資源集合同步的目標目錄
overwrite 覆寫現有檔案,即使目標檔案較新。 否;預設為 false
includeEmptyDirs 複製資源集合中包含的任何空目錄。
注意:此屬性也控制任何巢狀 <preserveintarget> 元素的行為。如果此屬性為 false(預設值),即使它們與 <preserveintarget> 的模式相符,僅存在於目標目錄中的空目錄也會被移除。這可以被 <preserveintarget>preserveEmptyDirs 屬性覆寫。
否;預設為 false
failonerror 如果設為 false,當其中一個巢狀檔案集指向不存在的目錄時,記錄警告訊息,但不要停止建置。 否;預設為 true
verbose 記錄正在複製的檔案。 否;預設為 false
granularity 在決定檔案過期之前給予的寬限毫秒數。這是必要的,因為並非每個檔案系統都支援追蹤到毫秒級別的最後修改時間。如果來源和目標檔案位於時鐘不同步的不同機器上,這也可能很有用。自 Ant 1.6.2 起 否;預設為 0 毫秒,或在 DOS 系統上為 2 秒。

指定為巢狀元素的參數

任何資源集合

資源集合 用於選擇要複製的檔案群組。

在 Ant 1.7 之前,只有 <fileset> 才被支援為巢狀元素。

preserveInTarget

自 Ant 1.7.0 起

指定即使不在任何來源目錄中,也應保留在目標目錄中的檔案或目錄。

此巢狀元素類似於 FileSet,但它不支援 dir 屬性,且 usedefaultexcludes 屬性預設為 false

其他參數
屬性 描述 必要
preserveEmptyDirs 覆寫此元素所比對目錄的 includeEmptydirs 設定。如果您要保留不在原始目錄中的空目錄,您可以設定工作項的 includeemptydirs 屬性或此屬性。如果這兩個屬性值衝突,此屬性會「獲勝」。 否;預設為工作項的 includeemptydirs 屬性值

範例

generated-site 中較新的檔案覆寫 site 中的所有檔案,並從 site 刪除 generated-site 中不存在的檔案。

<sync todir="site">
  <fileset dir="generated-site"/>
</sync>

generated-site 中較新的檔案覆寫 site 中的所有檔案,並從 site 刪除 generated-site 中不存在的檔案,但保留任何 CVS 子目錄中的所有檔案。

<sync todir="site">
  <fileset dir="generated-site"/>
  <preserveintarget>
    <include name="**/CVS/**"/>
  </preserveintarget>
</sync>