ant里面mapper标签是和fileset配合使用的,目的就是把fileset取出的文件名转成指定的样式。其实看懂官方文档后,感觉真心没啥好写的。但是还是写一下把。
1.<mapper type="identity"/>
就是啥都不干。fileset是啥样子,返回就是啥样子。
2.<mapper type="flatten"/>
大概意思是只返回文件名,而去掉路径,比如
D:andadt-bundle-windows-x86sdk oolsadb_has_moved.txt 这样输出就是 adb_has_moved.txt
3.<mapper type="glob" from="*.java" to="~*.java.bak"/>
大概的意思就是加前缀和后缀
D:andadt-bundle-windows-x86sdk oolsadb_has_moved.java 这样输出就是 ~D:andadt-bundle-windows-x86sdk oolsadb_has_moved.java.bak
4.<chainedmapper>
这个标签非常贱,看名字就知道,意思是把多个不同的mapper标签联合起来执行,以达到更全的处理方案。
<mapper> <chainedmapper> <flattenmapper/> <globmapper from="a*.java" to="*.java.bak" casesensitive="no"/> </chainedmapper> </mapper>
假设输入为D:andadt-bundle-windows-x86sdk oolsadb_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:andadt-bundle-windows-x86sdk oolsadb_has_moved.java > D.and.adt-bundle-windows-x86.sdk.tools.adb_has_moved
7<cutdirsmapper dirs="5"/>
这个的作用就是把文件目录去掉一部分
D:andadt-bundle-windows-x86sdk oolsadb_has_moved.java > adb_has_moved.java