用Ant建構腳本(4)
五、Ant相關
1、辨別過濾器
一個項目有一套辨別,如果發現當一個檔案被拷貝時,或許能自動進行擴充。當在這個支援任務中選擇了過濾器-拷貝行為,才支援這種方式。在buildfile中,通過過濾器任務或許能設定它。
因為這能導緻很大的潛在危害,在任務中辨別的辨別名在檔案中必須以@token@的形式給出。這個辨別文法比對其它建立的系統的文法,該系統完成過濾并保留足夠地程式和腳本語言的相交部分,如同文獻系統。
※※注意:如果在一個檔案中出現了帶有@token@的辨別,但卻又沒有任何過濾器與其相聯系,這将不發生改變。是以,沒有避免的方法可以用,但是隻要你選擇了合适的辨別名,這不會産生任何問題。
警告:如果你拷貝二進制檔案用過濾器來打開,你會被中斷。因為這個特征隻适用于文本檔案。
2、象路徑一樣的結構
你可以指定PATH-和CLASSPATH-type引用,通過用“:”和“;”作為分隔符。Ant會為目前作業系統轉換分隔符為正确的字元。
無論什麼情況下,象路徑一樣的值是需要指定的,元素嵌套也可以用。下面這個是通常的結構:
屬性的位置指定了一個單個的檔案或羨慕基本目錄的相關目錄,路徑屬性可用帶冒号或分号分隔開的位置清單。它需要預先指定,換句話說,帶位置屬性的多個元素都應該被指定。
另外,通過嵌套的、和元素,能指定DirSet、FileSet和FileList。
如果你想為幾個任務使用同樣的路徑結構,你可以在同一級的target中用元素來定義它,然後通過id屬性來引用它。
例如:
3、指令行參數
有幾個帶參數的任務可以在指令行中得到處理。指定包含空格符的參數使它變得更容易,嵌套的arg元素也能使用。
value,一個單個的指令行參數,能包含空格;
file,作為指令行參數的檔案名,執行時以檔案的絕對名來代替;
path,作為象路徑的字元串來處理,作為單個的指令行參數,可以使用“;”或“:”來作為分隔符,Ant會把它轉換為本地平台的習慣。
line,指令行參數的空格定界線清單。
如果可能,盡量避免使用指令行方式。
4、參考
buildfile元素的id屬性能用來引用它們自己。這有助于到處複制一個XML小片斷,例如:
可以寫成如下: