日常做开发管理,开发经理或者项目经理最烦恼的是怎么控制团队成员的代码质量,团队成员背景不同、经验不同,开发出来的产品也参差不齐,如果只靠代码走查,工作量太大,效果也不好,如果靠事后检查,或者出问题了再来追责,效果也不好。因此需要考虑一种事前自动化检查的方式,这样就能简化开发经理或项目经理的工作,让管理人员能够抽出身作更多的协调、统筹、高瞻远瞩的事情。
大多数项目使用的版本工具应该是SVN、GIT,其他版本工具例如CVS、TFS,当前的用户日趋减少。
Checkstyle是很好的代码规范检查工具,可以和Eclipse结合,但是如果只是和Eclipse结合做检查,效果还是不太好,还是不能起到事前自动检查的效果,所以很自然地想到将SVN和Checkstyle结合,这样在程序员提交代码的时候可以自动检查,做出警告,如存在不规范代码则禁止提交,这样就能实现代码的事前自动化检查。
以下是根据项目管理过程中的经验整理出来的代码自动检查方法,供参考:
1、安装Python2.4(最新的python为2.7或3.1版本),例如安装在c:\python24路径下
2、安装svnchecker-0.3
下载后解压缩,例如解压缩在D:\downloads\svnchecker-0.3\svnchecker-0.3:
修改modules\transaction.py文件,增加命令行:
command &command.replace(‘svnlook’,’%svnlook%’)
修改checks\check.py文件,增加命令行
if len(files) == 0:
return("",0)
3、在代码库下编写配置文件
[Default]
Main.PreCommitChecks=Checkstyle
#Path of java executable to run Checkstyle command
Checkstyle.Java=java
#Classpath for executing Checkstyle rules
Checkstyle.Classpath=D:\checkstyle\checkstyle-5.6-all.jar
#Configuration file for Checkstyle to run its rules.
Checkstyle.ConfigFile=D:\checkstyle\checkstyle.xml
#In case of failures, where should Subversionchecker redirectthe errors
Checkstyle.FailureHandlers=Console
4、编写代码检查脚本,例如d:\checksytle\checkstyle.xml:
5、配置pre-commit脚本
set python="C:\Python24\python.exe"
setsvnchecker="D:\downloads\svnchecker-0.3\svnchecker-0.3"
set svnlook="D:\Program Files\VisualSVNServer\bin\svnlook.exe"
setlocal
set REPOS=%1
set TXN=%2
rem checkstyle hooks
%python% %svnchecker%\Main.py PreCommit %REPOS%%TXN% || exit 1
rem Make sure that the log message containssome text.
set SVNLOOK="D:\Program Files\VisualSVNServer\bin\svnlook.exe"
%SVNLOOK% log -t "%TXN%""%REPOS%" | findstr "....." > null
if %errorlevel% gtr 0 goto err
exit 0
:err
echo 字符串长度不能小于5,不允许提交 1>&2
echo "%REPOS%" -t "%TXN%"1>&2
exit 2
6、提交代码时如果代码不符合规范会显示异常,修改后可以正常提交。如下