checkstyle-代码检查工具安装配置
2015-11-27 17:13
399 查看
使用: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代码规范的定义(以后主要是对该文件的维护)。
![](http://img.blog.csdn.net/20151125165131148)
注意:需要赋予checkstyle-5.2-all.jar可执行的权限
2.下载并安装svnchecker(使用版本:0.2.1)
如下为svnchecker-0.2.1安装后的文件目录。
![](http://img.blog.csdn.net/20151125165220651)
注意:需要赋予Main.py和modules下所有文件可执行的权限。
3.定义文件svncheckerconfig.ini配置svnchecker
svncheckerconfig.ini文件是svnchecker的配置文件。但svnchecker中并未定义该文件,需要用户自己创建。
其位置可以放在svnchecker根目录(全局配置)或者svn资源库的hooks目录下(当前项目配置)。配置如下:
默认是对svn工程下的所有目录都进行检测。如果需要只对指定目录进行检测,就需要用到Profiles功能添加新的profile,而且这个profile里要设定Main.Regex配置选项的值。
如果只希望检测指定目录里的文件,其他的不进行检查,则默认[Default]里应设置Main.PostCommitChecks为空。
4.修改svn pre-commit脚本
资源库hooks目录文件如下:
![](http://img.blog.csdn.net/20151125165338926)
将文件pre-commit.tmpl重命名为pre-commit。
在pre-commit添加代码(以实际路径为准):
![](http://img.blog.csdn.net/20151125165426253)
5.如上配置,若代码不符规范会在控制台提示信息。
![](http://img.blog.csdn.net/20151125165550209)
6.部分代码bug
SVNChecker工程已停止维护,所以对于bug需要自己修改。
(1)对于svn路径有空格会找不到文件的bug,修改svnchecker文件checks/checkstyle.py。
(2)返回错误信息太多导致Network connection closed unexpectedly的问题,修改checks/checkstyle.py文件
7.注意事项
(1)赋予相关文件可执行权限;
(2)svncheckerconfig.ini不允许有语法错误,否则会报文件无法找到的错误;
(3)版本问题,svnchecker和checkstyle不是所有版本都可以对应。建议checkstyle使用5.4版本,svnchecker使用0.3版本。
原理概述:
(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版本。
相关文章推荐
- java如何获取MySql数据库的列名,类型等信息
- Java 中InputStream与Reader的区别
- 关于Java多线程Thread的join用法
- C++类的构造函数、析构函数
- CUDA by Example,运行书中代码的一些问题 (更新中)
- 高质量JAVA代码编写规范
- PhpStrom激活
- php xdebug配置
- java正则表达式的应用 java读取文件并获取电话号码
- php 去掉字符串的最后一个字符
- C++primer plus第六版课后编程练习答案7.7
- rsync内网服务器 推送和拉取公网代码配置
- [转]annotation配置springMVC的方法了事务不起作用
- 将代码源文件由utf8转为GBK
- IBM招聘JAVA开发(员工推荐)
- 区间调度问题 算法第六集
- python 异常处理
- Barcode Professional for ASP.NET使用教程:透明旋转条码图像的创建
- 静态代码检测工具Cpplint
- C++别名传参和指针传参区别