Sonarqube规则插件自定义(sonar-pmd-p3c)

        由于Sonarqube的扫描规则只能通过打包jar形式才能被录入并使用,而且尚未支持界面自定义规则功能,所以提出了实现扫描规则自定义的需求。

        我们以sonar-pmd-p3c插件为例,首先需要下载的sonar-pmd-p3c插件源码

        GitHub - caowenliang/sonar-pmd-p3c: sonarQube 整合 阿里p3c

        以下是sonar规则自定义步骤,我们以添加PMD规则中bestpractices.xml的Avoid StringBuffer Field规则为例

       

         1、首先需要修改的文件有3处

                  sonar-pmd-plugin/src/main/resources/org/sonar/plugins/pmd/rules.xml

                  sonar-pmd-plugin/src/main/resources/org/sonar/|10n/pmd.properties

                  sonar-pmd-plugin/src/main/resources/com/sonar/sqale/pmd-model.xml

        2、接着在rules.xml中添加以下配置。其中priority是设置该规则的级别,status是设置该规则的状态(决定该规则是否废弃或使用)

        3、然后在pmd-model.xml中添加以下配置

 

 

        4、接着在pmd.properties中添加以下配置

 

         5、最后还需要在sonar-pmd-plugin/src/main/resources/org/sonar/|10n/pmd/rules/pmd/路径下创建该规则对应的html文件,用于展示前端页面的规则描述(注意:文件名与规则名匹配) 

    

         6、修改完成后,重新打包,将其存放于/extensions/plugins/路径下,重启sonar即可(注意不要使用root权限重启

        7、需要注意的是,规则的添加还需要考虑其支持的版本。

 


版权声明:本文为m0_54731428原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。