SonarQube 是一个用于代码质量管理的开源平台,可以用来做静态代码扫描,以提升code review的效率,提升代码的质量。以下有三种方案可供选择,适用于项目的不同阶段,不同角色,可以单独使用,也可以搭配使用。

开发人员
下载sonarLint插件到idea上,配置好sonar server端信息后,开发人员可以随时手动触发扫描,可以全局扫描、指定文件夹或者指定单个文件。

CodeReviewer
Sonar+gitlab扫描代码,每次提交代码进行代码增量扫描。

项目经理
触发方式有多种,mvn命令、sonar-scanner搭配Jenkins触发等方式,可以全局扫描并生成报告,适合一段时间总结代码的质量。


总结:
以上三种方案都是按照sonar服务器端配置的规则进行静态代码扫描,但是第二种实行起来有困难,目前没有看到比较好的方案。

那么每次提交代码,为了防止不规范的代码提交到仓库,还有什么办法呢?

可以借鉴前端项目的方案,前端代码的检测工具eslint与husky搭配可以做到在提交代码的时候监测代码,不符合规范就阻止本次提交,并展示不符合规范的内容。

那么后端其实也可以这样做,原理就是使用git的hooks,在提交前执行hook中的脚本,通过脚本获取本次提交的文件,对这些文件进行扫描,如果没问题就正常提交,有问题显示问题并终止本次提交。