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

在实现SVN集成Checkstyle实现代码自动静态检查之后,除了循序渐进地推动相应规范的落地外,我们当然也不能仅仅将目光局限在偏隅一角。毕竟对于代码静态检查而言,CheckStyle只是其中的辅助工具之一,我们还需要集成更多的检查工具进行交叉校验以加快我们代码规范化的速度,以及进一步提升我们对代码库的信心。

1. 概述

PMD是一款采用BSD协议发布的Java程序代码检查工具。该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。该软件功能强大,扫描效率高,是Java程序员debug的好帮手。

2. 实现

通过阅读相应源码,我们可以发现SVNChecker是提供了相应检查扩展的,因此本次我们依然使用SVNChecker来完成需求。

  1. 下载 pmd-bin-x.xx.x.zip ,解压到相应目录下,建议放到和svnchecker-0.3目录所在的同级目录下。

  2. 目录下,拷贝 文件,并将其重命名为 。

  3. 修改上一步中生成的(为了方便读者,这里将所有的代码(除了顶部版权声明注释)全部贴出来)。

  4. 修改SVNChecker配置文件(依然贴出所有相关的部分,省略无关细节)。

  5. 修改文件。

3. 效果

以上配置正确生效之后,研发人员在进行代码提交时,应该可以得到如下效果:

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

4. 延伸

很多时候,规则的执行必须循序渐进,代码规范也不例外。对于一个公司而言,需要长期维护的既有产品以及不断发展的新产品相当于人的两条腿,缺一不可。为了减少对既有产品项目的大幅修改导致的不稳定性,我们一般会将代码规范拆分为OLD,NEW两个版本。新产品项目使用NEW版本,而既有产品项目则使用OLD进行缓慢迭代。

以上方法经过笔者所在公司的数月试行,发现存在一个非常尴尬的问题:“对于那些存在于NEW版, 而OLD版中没有的规则,我们无法确保既有产品项目的维护人员遵守它们”,对这些规则,如果完全依赖于人工审核,这将耗时耗力,也无法确保没有纰漏。

所以我们需要仿造本文里的方式,建立扩展的扩展检查。

  1. 目录下,拷贝 文件,并将其重命名为 。
  2. 修改SVNChecker配置文件 ,新增以下内容。

5. 关于静态代码分析

静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等等。

在软件开发过程中,静态代码分析往往先于动态测试之前进行,同时也可以作为制定动态测试用例的参考。统计证明,在整个软件开发生命周期中,30% 至 70% 的代码逻辑设计和编码缺陷是可以通过静态代码分析来发现和修复的。

但是,由于静态代码分析往往要求大量的时间消耗和相关知识的积累,因此对于软件开发团队来说,使用静态代码分析工具自动化执行代码检查和分析,能够极大地提高软件可靠性并节省软件开发和测试成本。

静态代码分析工具的优势:

  1. 帮助程序开发人员自动执行静态代码分析,快速定位代码隐藏错误和缺陷。
  2. 帮助代码设计人员更专注于分析和解决代码设计缺陷。
  3. 显著减少在代码逐行检查上花费的时间,提高软件可靠性并节省软件开发和测试成本。

6. LInks

  1. Office Site – PMD CLI reference
  2. SVN集成Checkstyle实现代码自动静态检查
  3. SVN之常用Hook

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8751 人正在系统学习中

来源:夫礼者

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年1月11日
下一篇 2020年1月11日

相关推荐