码迷,mamicode.com
首页 > 其他好文 > 详细

checkstyle代码检查工具安装配置

时间:2015-11-27 19:28:07      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

使用:SVN钩子 + CheckStyle + svnchecker

原理概述:

(1)CheckStyle定义了代码的规范;

(2)svnchecker可以调用CheckStyle定义的规范进行检查;

(3)使用svn的钩子程序可以在代码提交前执行svnchecker.

安装步骤:

1.下载并安装CheckStyle(使用版本:5.2)如下为checkstyle-5.2安装后的文件目录。其中checkstyle-5.2-all.jar为供svnchecker调用的jar文件,checkstyle_checks.xml是对java代码规范的定义(以后主要是对该文件的维护)。

技术分享 

注意:需要赋予checkstyle-5.2-all.jar可执行的权限

2.下载并安装svnchecker(使用版本:0.2.1)

如下为svnchecker-0.2.1安装后的文件目录。

技术分享 
注意:需要赋予Main.py和modules下所有文件可执行的权限。

3.定义文件svncheckerconfig.ini配置svnchecker

svncheckerconfig.ini文件是svnchecker的配置文件。但svnchecker中并未定义该文件,需要用户自己创建。 
其位置可以放在svnchecker根目录(全局配置)或者svn资源库的hooks目录下(当前项目配置)。配置如下:

[Default]
Main.PreCommitChecks=
Checkstyle.Java=/usr/local/jdk1.6/bin/java
Checkstyle.Classpath=/usr/local/svn/checkstyle-5.2/checkstyle-5.2-all.jar
Checkstyle.ConfigFile=/usr/local/svn/project/hooks/sun_checks23.xml
Checkstyle.FailureHandlers=Console
 
[WAPSERVICE]
Main.Regex=^svntest/src/com/soufun/wap/.*$
Main.PreCommitChecks=Checkstyle
[root@hadoop200 hooks]#

默认是对svn工程下的所有目录都进行检测。如果需要只对指定目录进行检测,就需要用到Profiles功能添加新的profile,而且这个profile里要设定Main.Regex配置选项的值。 
如果只希望检测指定目录里的文件,其他的不进行检查,则默认[Default]里应设置Main.PostCommitChecks为空。

4.修改svn pre-commit脚本

资源库hooks目录文件如下:

技术分享 

将文件pre-commit.tmpl重命名为pre-commit。

在pre-commit添加代码(以实际路径为准):

/usr/local/svn/svnchecker-0.2.1/Main.py PreCommit $REPOS $TXN || exit 1

技术分享

5.如上配置,若代码不符规范会在控制台提示信息。

技术分享

6.部分代码bug

SVNChecker工程已停止维护,所以对于bug需要自己修改。 
(1)对于svn路径有空格会找不到文件的bug,修改svnchecker文件checks/checkstyle.py。

if len(files) == 0:
         return ("", 0)
    try:
        #Process.execute(command + " ".join(files))
        for file in files:
            command += ‘"‘ + file + ‘" ‘
        Process.execute(command)

(2)返回错误信息太多导致Network connection closed unexpectedly的问题,修改checks/checkstyle.py文件

except Process.ProcessException, e:
        msg = "Coding style errors found: "
        msg += e.output + " "
        if len(msg) > 6000:
            msg = msg[:6000]
            msg += " More information is omitted! "
        msg += "See Checkstyle documentation for a detailed description: http://checkstyle.sourceforge.net/"
        return (msg, 1)

7.注意事项

(1)赋予相关文件可执行权限; 
(2)svncheckerconfig.ini不允许有语法错误,否则会报文件无法找到的错误; 
(3)版本问题,svnchecker和checkstyle不是所有版本都可以对应。建议checkstyle使用5.4版本,svnchecker使用0.3版本。

 

checkstyle代码检查工具安装配置

标签:

原文地址:http://www.cnblogs.com/jackgaolei/p/5001245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!