SonarQube整合阿里开发规范

一、sonarqube简介

  Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。

通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地

在持续集成中使用 Sonar。 此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

二、代码质量检测规划

   随着代码量的增多,服务模块的拆分,代码越来越难进行管理,质量与效率的矛盾慢慢凸显出来,而人为的管理代码质量,耗时耗力。因此实现自动化工具检测势在必行,

平台规划使用云端和本地结合的方式实现代码质量的管控。云端Git + Jenkins + Sonar执行自动代码质量分析,研发人员在Git提交代码后,会自动触发Jenkins构建项目,构建

项目前,自动触发Sonar检测代码质量,并将结果展示在页面。本地研发人员提交代码前,先用编码规范进行代码检测,检测没有异常,才能提交代码。

   Sonar本身提供了大量的代码检测规则,但是很多规则并不影响代码的质量和效率。目前业界比较好的java代码规范是阿里发布的《阿里巴巴java开发手册》,而二者也可以很方便的集成在一起。

   本地代码检测规则和云端Sonar的配置的规则应保持一致,Sonar提供了IDE开发工具插件sonarLint,可以将sonarQube服务上配置的规则同步到开发工具上。但是目前Sonar并不支持自定义规则的同步,所以需要先在开发工具装安装阿里的p3c编码规范插件,然后从中选择平台适用的规范。目前这是折中方案,后续将继续研究如何将第三方的规则从sonarQube上同步到本地IDE中,使自定义规则的同步更方便。

   推荐使用Idea进行研发,idea可以自定义配置需要的代码检查规则。

一、pmd插件整合阿里开发规则

sonar-pmd是sonar官方的支持pmd的插件,但是还不支持p3c,需要在pmd插件源码中添加p3c支持(p3c是阿里在pmd基础上根据阿里开发手册实现了其中的49开发规则)。

源码下载地址:https://github.com/mrprince/sonar-p3c-pmd

此源码工程已经添加了P3C支持,直接mvn package打包即可。

打好jar包后拷贝到sonar的plugins目录下:

|

sonarQube_Home/extensions/plugins

|

重启sonarQube,进入sonarQube后,选择“代码规则”菜单,在页面中,选择“Java”,搜索框中搜索“p3c”,右侧列表能显示规则则导入成功

注意:注意SonarQube版本匹配问题,当前SonarQube 7.2社区版

image.png

二、配置阿里开发规则

选择“质量配置”菜单,点击“创建”按钮

image.png

在弹出的页面出输入配置名称并选择编程语言,创建配置

image.png

进入配置页面后,点击“更多激活规则”,可以进入规则选择页面

image.png

语言选择“Java”,并在搜索框中输入“p3c”,查找出之前导入的阿里编码规则

image.png

点击需要添加的规则后的“活动”按钮,可以将此条规则激活,加入创建的质量配置中

image.png

点击“活动”按钮的弹出框中可以选择此条规则的适用严重程度

image.png

三、设置Java和项目的质量配置

选择“质量配置”菜单,在页面中选择刚才创建的质量配置,点击配置按钮选择“设为默认”,可以将

该质量配置设置为java默认配置,提交的java代码会自动被质量配置中的规则进行质量检查

image.png

如果不设置未默认,也可以点击刚才创建的质量配置,在跳出的页面中选择“修改项目”,来添加

适用该质量配置的项目

image.png

IDEA添加阿里编码规范

打开IDEA的Settings


image.png

选择Plugins,右侧选择Alibaba Java Coding Guidelines,并install


image.png

重启IDEA后,可以看到Tools下已有阿里编码规约

image.png

二、IDEA选择适用的阿里编码规范

打开IDEA的Settings,选择Inspections,在右侧的界面中Copy一个Profile并改名,与系统的Profile进行区别。

Leavel 是Project Leavel,用橡皮檫清空原来的选择的规则后选择Ali-Check下的规则,Ali-Check分类下即是

阿里巴巴的编码规范。

image.png

配置好Ali-Check后,可以选择将Profile导出,其他同事可以直接导入使用

image.png

三、IDEA使用配置的编码规范进行代码检测

选择Analyze下的Inspect Code菜单

image.png

在弹出的界面中选择配置的Ali-Check进行检测

image.png

检测结果会显示在IDEA的下方

image.png

也可以在想要检查的类上右击,Analyze→Inspect Code,进行当前类的检测

image.png

推荐阅读更多精彩内容