DevOps的Build阶段,以Java作为主力开发语言的公司基本都会选择使用Jenkins来做CI,虽然Jenkins提供了CheckStyle,以及新一代的替代品Warnings Next Generation插件来做代码质量静态检查,但正如软件开发领域的一句流传甚广的格言 —— “离错误越近,修复成本越低”,如果能够将静态检查的时机进一步提前,那么不论对于统一公司代码规范,维系代码库中代码质量,以及提升员工素养等都是相当具有裨益的。
0. 目录
-
-
- 1. 概述
- 2. 步骤
-
- 2.1 安装
-
- 2.1.1 安装Python
- 2.1.2 安装svnchecker-0.3
- 2.1.3 安装CheckStyle
- 2.2 配置
-
- 2.2.1 配置svnchecker
- 2.2.2 配置SVN Server
- 3. 疑难问题
-
-
- 3.1 中文提示乱码的问题
- 3.2 错指示行数与实际不符
- 3.3 路径中有中文时导致的问题
-
- 4. 最终效果
- 5. 最后
- 6. Links
-
1. 概述
“代码的规范性与软件缺陷是有紧密联系的,质量高的代码将直接提高软件的质量”。相信每一个软件企业的研发部门都有类似于《XX语言开发规范》的文档,但究竟有多少人会去认真阅读、吃透其中的每一条款,并把其做为代码书写的“圣经”来对待(稍有违反规范的代码将及时重写)们需要“用技术手段去解决技术问题”。让我们在最关键的环节—代码仓库SVN—“做手脚”。让不符合团队代码规范的代码不会出现在代码仓库中,这将使程序员无法回避“自己所犯的错误”。
笔者的测试环境为Windows Server 2008 64位。
2. 步骤
2.1 安装
2.1.1 安装Python
- 从 Python下载地址 中下载相应的Python2.x版本(注意这里不要下载Python3.x)。另外如果觉得上述链接下载比较慢,可以使用下面这个国内链接Python2.7.6。注意下载对应位数的Python版本。
-
编写代码检查脚本,例如 。
这里直接引用一篇文章 : 符合阿里巴巴代码规范的checkstyle检测文件。
将以上配置复制保存为文件,放到目标SVN仓库的hooks目录之下。
注意:
a. svncheckerconfig.ini既可以放在svnchecker的安装目录之下(),也可以放在hooks目录之下。();前者起全局作用,后者则只对该版本库起作用。
b. svncheckerconfig.ini文件的具体格式是Python的ConfigParser类定义的标准配置文件格式,非常容易出错,因此要小心书写。
2.2.2 配置SVN Server
配置pre-commit脚本
3.1 中文提示乱码的问题
3.3 路径中有中文时导致的问题
参见 【DEVOPS】借助SvnChecker实现SVN提交日志规范的落地
4. 最终效果
效果如下:

5. 最后
以下引用着下方第二个参考链接:
- 不要一次把所有规则都加入,循序渐进,分多批次添加。否则开发人员的修改量会很大,为制度的推行造成过大的阻力。
- Svnchecker项目已不维护,改为RepoGuard(http://repoguard.tigris.org/),有兴趣的同学可以进一步研究此框架。
- 既然决定用此技术来规范起代码,那么就应该坚持的走下去,即使开发人员提出是否可以放宽要求,也要坚持自己的原则。
6. Links
- 用checkstyle实现svn的代码规范性检查
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树基础架构自动编排(Terraform)介绍Terraform8750 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!