Perl批量修改Java文件类名

2011-11-22  籽藤 

按照规范,所有JUnit测试类最好命名为“TestXXX”或者“XXXTest”,但在我们项目中,测试类名就直接是“XXX”,这导致在Maven运行的时候有点小麻烦。

当然,Jave类名和文件名必须一致,批量修改文件名很好办(Total Commander下Ctrl+M),但是修改类名呢?

OK,还是晒晒Perl程序:

$path='C:\\Users\\applewu\\Desktop';
opendir(DIR,$path);
@filename=readdir(DIR);
for($i=2;$i<@filename;$i++)
{
#print "$path\\@filename[$i]";
if(@filename[$i]=~m/.java/)#过滤出后缀名为java的文件
{
$myfile="$path\\@filename[$i]";#获得文件完整的绝对路径
open FILE, "$myfile" or die "Can’t open '$myfile': $!";#打开文件
$classname=@filename[$i];
if($classname=~s/.java//)#Java类名就是文件名去掉“.java”后缀
{
$classNewname=$classname."Test";#原类名加上Test,形成新类名;如abc变成abcTest
#print $myfile;
#print $classname;
#print $classNewname;
my $lines = join '', <FILE>;
if($lines=~s/$classname/$classNewname/g)#新类名替换原类名

 #print $lines;
 print "\nok";
 open FILE, ">$myfile";#新建文件,以便进行覆盖写入
 syswrite(FILE,$lines);#重写文件句柄
}
}
}
close(FILE);
}
closedir(DIR);

说明:

此程序是将abc.java中的abc类,替换成abcTest类;所以在运行Perl程序之后,还要批量将abc.java文件命名为abcTest.java

426°/4263 人阅读/0 条评论 发表评论

登录 后发表评论