通过Ant批量转换文件的字符集编码

近日有一新项目二期,可是一期里面的代码都是GBK的编码,二期里面又想用其它项目的框架,这个框架是UTF-8的编码,所以就需要将编码转换,GOOGLE找了一圈,发现Ant 1.6版本的Copy task 的一个特性可以轻松搞定批量的文件字符集编码转换。
build.xml 的详细内容

< project  name ="crm"  default ="encoding" >
     < property  name ="target.dir"  value ="d:\workspace\crm\dawnpro"   />
     < property  name ="output.encoding"  value ="UTF-8"   />

     < target  name ="init" >
         < mkdir  dir ="${target.dir}" />
     </ target >

     < target  name ="clean" >
         < delete  dir ="${target.dir}"   />
     </ target >

     < target  name ="encoding"  depends ="init" >
         < copy  todir ="${target.dir}"     outputencoding ="${output.encoding}"   >
             < fileset  dir ="${basedir}" >
                   < include  name ="**/*.java" />
                   < include  name ="**/*.jsp" />
             </ fileset >
             < filterset >
                 < filter  token ="ENCODING"  value ="${output.encoding}" />
             </ filterset >
         </ copy >
     </ target >
</ project >

稍微解释一下:
步骤:
1、ant(1.6)环境准备;
2、按照你的资源文件命名修改 fileset, 比如改成 “**/*.properites”等等;
3、target 目录就是你所需要的东东了;
4、用ant运行build.xml。

原理:
通过将当前文件复制到目标输出目录的copy 任务,设置 outputencoding 属性,可以轻松获得编码后的资源文件,:)
当然,你还可以设定ant 的filter token, 比如 “@ENCODING@”,来按照需要修改文件的内容。

扩展一下,我在考虑是否可以用ant 的filter token特性对完成java方法做单元测试,原理:在写java方法的时候在注释部分用特殊字符替换测试用例的内容,然后用ant生成test方法(不需要单独去实现test方法),最后用junit完成测试。

你可能感兴趣的:(框架,ant,JUnit,单元测试,Google)