【DevOps】SVN集成Checkstyle实现代码自动静态检查

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
  1. 从 Python下载地址 中下载相应的Python2.x版本(注意这里不要下载Python3.x)。另外如果觉得上述链接下载比较慢,可以使用下面这个国内链接Python2.7.6。注意下载对应位数的Python版本。
  2. 将以上配置复制保存为文件,放到目标SVN仓库的hooks目录之下。

    注意:
    a. svncheckerconfig.ini既可以放在svnchecker的安装目录之下(),也可以放在hooks目录之下。();前者起全局作用,后者则只对该版本库起作用。
    b. svncheckerconfig.ini文件的具体格式是Python的ConfigParser类定义的标准配置文件格式,非常容易出错,因此要小心书写。

  3. 编写代码检查脚本,例如 。
    这里直接引用一篇文章 : 符合阿里巴巴代码规范的checkstyle检测文件。

2.2.2 配置SVN Server

配置pre-commit脚本

3.1 中文提示乱码的问题

3.3 路径中有中文时导致的问题

参见 【DEVOPS】借助SvnChecker实现SVN提交日志规范的落地

4. 最终效果

效果如下:

【DevOps】SVN集成Checkstyle实现代码自动静态检查

5. 最后

以下引用着下方第二个参考链接:

  1. 不要一次把所有规则都加入,循序渐进,分多批次添加。否则开发人员的修改量会很大,为制度的推行造成过大的阻力。
  2. Svnchecker项目已不维护,改为RepoGuard(http://repoguard.tigris.org/),有兴趣的同学可以进一步研究此框架。
  3. 既然决定用此技术来规范起代码,那么就应该坚持的走下去,即使开发人员提出是否可以放宽要求,也要坚持自己的原则

6. Links

  1. 用checkstyle实现svn的代码规范性检查

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树基础架构自动编排(Terraform)介绍Terraform8750 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年11月8日
下一篇 2019年11月8日

相关推荐