如何在Ant中定義一個dirset,它包含兩個目錄:項目的基本目錄和子目錄「test」?包含根目錄的Ant dirset
看起來你不能使用「/」,「。」或「」特別包含dirset的根目錄。例如,這包括「./test」,但不包括「。」:
<dirset dir="." id="myDirs">
<include name="." />
<include name="test" />
</dirset>
如何在Ant中定義一個dirset,它包含兩個目錄:項目的基本目錄和子目錄「test」?包含根目錄的Ant dirset
看起來你不能使用「/」,「。」或「」特別包含dirset的根目錄。例如,這包括「./test」,但不包括「。」:
<dirset dir="." id="myDirs">
<include name="." />
<include name="test" />
</dirset>
這並不明顯。一旦根目錄進入,測試子目錄就會包含在其他所有內容中。也許你需要告訴我們將要使用這個dirset什麼,以及你期望它做什麼?處理「測試」兩次?
根據您的評論,您需要添加根目錄,然後爲除測試之外的所有內容添加「排除」元素。
或者做兩個方法:一個不包括所有的孩子,另一個只是測試。
的documentation of DirSet不解釋這種行爲,但下面的工作正常在我的Ubuntu 15.04使用ant版本1.9.4
<path id="my.two.dirs">
<dirset dir="." id="myDirs1" excludes="*/**" />
<dirset dir="." id="myDirs2" includes="test" />
</path>
這差不多就是bmargulies張貼在他的答案,但因爲我沒有」首先了解它,我認爲代碼示例可能會有用。
我想使用ant-contrib的foreach遍歷dirset,並在每個目錄中創建一個文件(例如,我將創建./file和./test/file)。我認爲,除非你添加「/」或「/ **」,否則包含特定目錄的人不一定包含其子目錄。 – 2009-12-29 21:45:24
嗯......我不一定會事先知道非「測試」目錄的名稱。這太糟糕了 - 例如,我可以包含「test」和「test/foo」,它只會使用這兩個目錄,而不是「test/bar」。但是這在根層面上不起作用。 – 2009-12-29 22:03:12