SonarQube集成ail-p3c插件

/ 测试Java / 没有评论 / 2534浏览

背景

《阿里巴巴Java开发手册》自从第一个版本起,倍受业界关注,很多人甚至希望能尽快在自己的团队推行起来,让团队有一套共同的开发准则。基于这套准则,我们希望达到以下两个要求:

  1. 以插件的形式集成到java的IDE开发环境(IDEA、Eclipse),用于开发人员的代码自检。
  2. 将该开发规范集成到sonar的规则库,同时和gitlab-ci集成,制定阈值规则,不满足要求,pipline执行失败。

如何实现

插件导入IDE

阿里巴巴开发了一套自动化的IDE检测插件(IDEA、Eclipse), 该插件在扫描代码后,将不符合《手册》的代码按Blocker/Critical/Major三个等级显示在下方,甚至在IDEA上,还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。对于历史代码,部分规则实现了批量一键修复的功能。

代码已经开源,GitHub:https://github.com/alibaba/p3c

打开IDEA,选择Preferences - Plugins - Browse repositories后,在输入框中输入"alibaba",可以看到返回结果中有"Alibaba Java Coding Guidelines"。 1

制作sonar插件

  1. 在github找到一个p3c的sonar插件开源项目,https://github.com/mrprince/sonar-p3c-pmd,导入工程后,修改规则名org.sonar.plugins.pmd.PmdConstants,REPOSITORY_NAME为规则名称PMD_wwyl。
  1. 将生成的插件放到/extensions/plugins
  2. 重启sonar,需切到非root账号,先启动es服务, ./elasticsearch -d 再启动sonar服务./sonar.sh start
  3. 查看sonar和es服务日志是否正常 2
  4. sonar规则增加了p3c,完工。 3