ant裏面mapper標籤是和fileset配合使用的,目的就是把fileset取出的文件名轉成指定的樣式。其實看懂官方文檔後,感受真心沒啥好寫的。可是仍是寫一下把。html
1.<mapper type="identity"/>java
就是啥都不幹。fileset是啥樣子,返回就是啥樣子。正則表達式
2.<mapper type="flatten"/>windows
大概意思是隻返回文件名,而去掉路徑,好比app
D:\and\adt-bundle-windows-x86\sdk\tools\adb_has_moved.txt 這樣輸出就是 adb_has_moved.txtide
3.<mapper type="glob" from="*.java" to="~*.java.bak"/>post
大概的意思就是加前綴和後綴url
D:\and\adt-bundle-windows-x86\sdk\tools\adb_has_moved.java 這樣輸出就是 ~D:\and\adt-bundle-windows-x86\sdk\tools\adb_has_moved.java.bakspa
4.<chainedmapper>code
這個標籤很是賤,看名字就知道,意思是把多個不一樣的mapper標籤聯合起來執行,以達到更全的處理方案。
<mapper> <chainedmapper> <flattenmapper/> <globmapper from="a*.java" to="*.java.bak" casesensitive="no"/> </chainedmapper> </mapper>
假設輸入爲D:\and\adt-bundle-windows-x86\sdk\tools\adb_has_moved.java,這個時候輸出爲adb_has_moved.java.bak
注意如果這個裏面不寫chainedmapper的話,返回的結果包含mapper裏面全部的mapper返回結果的和。
由於這個裏面把flatten和glob兩個標籤聯合起來用了。
5. <mapper type="regexp" from="^(.*)\.java$$" to="\1.java.bak"/>
這個就是正則表達式了。正則表達式僅僅會抓去出相匹配的字符串,而沒有替換功能,注意。
6.<mapper type="package" from="*Test.java" to="*"/>
D:\and\adt-bundle-windows-x86\sdk\tools\adb_has_moved.java > D.and.adt-bundle-windows-x86.sdk.tools.adb_has_moved
7<cutdirsmapper dirs="5"/>
這個的做用就是把文件目錄去掉一部分
D:\and\adt-bundle-windows-x86\sdk\tools\adb_has_moved.java > \adb_has_moved.java
原文轉自:http://www.cnblogs.com/100fighting/p/3171131.html