5
我正在使用ant 1.6.2,並且正在嘗試設置一個任務,該任務將比較源目錄和目標目錄,確定源目錄中存在的所有子目錄,並刪除目標目錄中的已命名子目錄。如何使用FileSet在ant中選擇子目錄?
因此,假設源目錄中有子目錄sub1,sub2和sub3,目標目錄中有sub1,sub2,sub3和sub4,那麼我想刪除sub1,sub2和sub3目標目錄。
我想我可以通過使用FileSelector來標識目標中存在的所有目錄中的目錄。但是,我無法使< type>文件選擇器返回目錄匹配。
最後,我想我會做這樣的事情:
<fileset id="dirSelector" dir="${install.dir}">
<type type="dir"/>
<present targetdir="${dist.dir}"/>
</fileset>
我開始只是想列出存在的源目錄中的目錄,並把它們打印出來:
<fileset id="dirSelector" dir="${install.dir}">
<type type="dir"/>
</fileset>
<property name="selected" refid="dirSelector" />
<echo>Selected: ${selected}</echo>
然而,我從來沒有得到任何打印的類型選擇器設置爲目錄。如果我將文件類型更改爲文件,我會將文件打印出來。
有沒有更好的方法來完成我想要做的事情?我在使用類型選擇器時錯過了什麼?
感謝您的幫助。我目前不使用ant contrib庫,所以我想我會嘗試先建議的自定義任務路線。這最終變得相當簡單,並且工作得很好。謝謝。 – 2010-01-28 13:24:11
@EricRosenberg您可以將自定義任務發佈爲答案嗎?這對於SO來說工作得很好,而且這將是我們正在尋找的東西。 – 2014-02-25 11:06:02
@OzairKafray對不起,但我無法再訪問自定義任務實施。 – 2014-04-23 20:33:58