sonarqube没有html插件,如何在sonarqube的pmd插件中整合阿里开发规范

一、sonarqube简介

Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。 此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

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

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

参考文章https://my.oschina.net/greki/blog/1801462

此源码工程已经添加了P3C支持

b849175dd38b

并在pmd插件的默认268条规则上添加了阿里的48条规则,阿里的p3c实现了49条阿里开发规范规则,此工程中少了一条AvoidManuallyCreateThreadRule规则,只需要将sonar-p3c-pmd工程中的默认的268条规则屏蔽掉,添加AvoidManuallyCreateThreadRule 规则,就是我们现在的含有49条阿里开发规则的 pmd插件。

sonar-p3c-pmd工程工程源码改法

1.一条校验规则对应分别对应3个配置文件 pmd.properties (src\main\resources\org\sonar\l10n\), rules.xml(src\main\resources\org\sonar\plugins\pmd\),  pmd-model.xml (src\main\resources\com\sonar\sqale\)。

2.首先注释掉pmd中原默认的268条规则。例如屏蔽掉pmd中原来默认的      StringInstantiation规则。

①首先注释掉pmd.properties文件中的

b849175dd38b

(注意:规则配置在pmd.properties文件中是以 .name 结尾,不要多注释掉其它的以 .param.xxx结尾的配置,否则可能导致打出的jar包放到sonar下时sonar启动失败    )

②注释掉rules.xml中的 StringInstantiation对应的配置

b849175dd38b

③注释掉pmd-model.xml中的StringInstantiation对应的配置

b849175dd38b

这样就屏蔽掉了一条默认的pmd规则。

3.添加阿里的开发规则,为了区别阿里的p3c规则,这里新建了一个rules-p3c.xml文件。

b849175dd38b

然后在PmdRulesDefinition类中指定一下rules-p3c.xml 路径

b849175dd38b

添加阿里的规则,例如添加CommentsMustBeJavadocFormatRule规则。

①在 pmd.properties中添加

rule.pmd.CommentsMustBeJavadocFormatRule.name=CommentsMustBeJavadocFormatRule

②在 rules-p3c.xml中添加

b849175dd38b

③在pmd-model.xml中添加

b849175dd38b

④添加描述文件— CommentsMustBeJavadocFormatRule.html.内容来自p3c对应xml 用于错误详情页面的展示

b849175dd38b

4. 修改p3c的提示语,如leader要求添加 PASS-ALI 前缀,下载p3c-pmd源码 https://github.com/alibaba/p3c,描述内容都在p3c/p3c-pmd/src/main/resources/messages.xml,在messages.xml中每条规则的提示语前添加前缀 PASS-ALI:  。

b849175dd38b

然后将p3c-pmd打包,装到本地仓库 mvn clean install -Dgpg.skip

重新打包sonar-p3c-pmd工程,将打好的jar包放到sonarqube的 ..\extensions\plugins目录下,重启sonarqube。即可安装好整合好只含有阿里开发规则的pmd插件。

5. 如果想修改pmd插件在sonarqube中的插件显示名,可以修改 sonar-p3c-pmd 工程中的PmdConstants类  Sring REPOSITORY_NAME 名字即可

b849175dd38b

b849175dd38b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值