2011-11-21 49 views
0

作爲內容遷移項目的一部分,我每週都將內容構建到CMS中,並使用Ant腳本將內容文件複製到構建目錄。到目前爲止,我們一直在擦拭CMS並每次重新加載整個17,000個文件集,這大約需要1.5個小時。但現在內容和CMS自定義更加穩定,我們只想上傳自上週以來修改過的內容文件。使用Ant <modified>使用任意日期的選擇器

我可以複製自上次我跑使用<修改>選擇Ant腳本修改過的文件:

<copy todir="changed" failonerror="no"> 
    <fileset dir="output" includes="*.*"> 
    <modified/> 
    </fileset> 
</copy> 

其中非常漂亮的作品。不過,我希望能夠加載自服務器上發生的上一次CMS構建以來已修改的文件。所以我想知道是否有某種方式使用<已修改的>的基於緩存的方法來僅複製自給定日期/時間(例如「上個星期四17.00」)以來修改過的文件,而不是「上次運行此腳本時」。

回答

1

我得到了我一直在尋找的Ant mailing list使用的modified選擇的update參數,其中斯特凡Bodewig建議的答覆。正如我使用的是Ant 1.7.1,我必須解決一個阻止其直接用作屬性的bug,但本質上,通過使用命令行上的屬性設置它,我可以隨時更新緩存一個生產版本,並且當我執行中間測試版本時保持它的狀態。

這裏是我結束了(包括1.7.1解決方法。)代碼:

<copy todir="\content\Test\" includeEmptyDirs="false" failonerror="no"> 
    <fileset dir="../Output"> 
    <modified> 
     <param name="update" value="false"/> 
    </modified> 
    </fileset> 
</copy> 
0

date selector會做這項工作嗎?

+1

謝謝,但它看起來好像是隻會檢查文件的最後修改日期戳。由於所有17,000個文件都是同時生成的,無論它們是否有任何實際更改,它們都將具有相同的修改日期。修改後的工作方式看起來更有希望,但我需要捕獲構建日期中每個文件的哈希值,然後確保它將文件與該哈希值進行比較,直到我以某種方式更新該值。或者使用我還不知道的其他一些聰明的Ant方法。 :) –

相關問題