目录
1.2、方法二(建议使用)
2.2、在PmdRulesDefinition类中指定一下rules-p3c.xml 路径
0、前言
各插件关系:
下载地址:
p3c-pmd:https://github.com/alibaba/p3c
soanr-pmd-p3c:
https://github.com/rhinoceros/sonar-p3c-pmd
https://github.com/caowenliang/sonar-pmd-p3c(用这个)
1、构建 sonar-p3c plugin插件
目的:在sonarqube中加入p3c的校验规则
1.1、方法一(存在版本对应问题)
构建源码地址:
https://github.com/rhinoceros/sonar-p3c-pmd/
我选择的3.1.3分支,sonarque版本选的是
- Community Edition
- 版本 7.9.6
PMD是啥意思
1.2、方法二(建议使用)
SonarQube版本:SonarQube7.6
JDK版本:1.8
SonarQube7.6确认可用插件:https://github.com/caowenliang/sonar-pmd-p3c
step1:构建代码:
>git clone https://github.com/caowenliang/sonar-pmd-p3c
>cd sonar-pmd-p3c
>mvn clean install -Dmaven.test.skip=true
将构建好的插件sonar-pmd-plugin-xxx.jar放到SonarQube的插件目录extensions/plugins下
step2:重启 SonarQube,在 Quality Profiles【质量配置】页面点击Create:
Name【名称】自己填
Language【语言】选Java,点击Create按钮后,跳转到质量配置详情界面。
step3:在详情界面,点击 Activate more【更多激活规则】,在 Search for rules...【搜索规则...】中搜索p3c,然后点击 Bulk Change【批量修改】,确认Apply。
step4:返回到 Quality Profiles【质量配置】页面,将该质量配置 Set as Default【设为默认】。
2、添加规则案例
一条校验规则对应分别对应3个配置文件:
1、pmd.properties (src\main\resources\org\sonar\l10n\)
2、rules.xml(src\main\resources\org\sonar\plugins\pmd\)
3、pmd-model.xml (src\main\resources\com\sonar\sqale\)
参考:https://www.jianshu.com/p/b849175dd38b
参考文档中建议:首先注释掉pmd中原默认的268条规则
以下演示怎么添加p3c规则:
2.1、新建rules-p3c.xml文件
2.2、在PmdRulesDefinition类中指定一下rules-p3c.xml 路径
接下来开始添加具体的阿里规则 (以CommentsMustBeJavadocFormatRule为例):
2.3、在 pmd.properties中添加
2.4、在 rules-p3c.xml中添加
2.5、在pmd-model.xml中添加
2.6、添加描述文件
内容来自【p3c-pmd】对应xml 用于错误详情页面的展示:
2.7、通过message.xml修改描述内容
在【p3c-pmd】中修改
然然后将p3c-pmd打包,装到本地仓库 mvn clean install -Dgpg.skip
2.8、重新打包sonar-p3c-pmd
重新打包sonar-p3c-pmd工程,将打好的jar包放到sonarqube的 ..\extensions\plugins目录下,重启sonarqube
2.9、其他
如果想修改pmd插件在sonarqube中的插件显示名,可以修改 sonar-p3c-pmd 工程中的PmdConstants类 Sring REPOSITORY_NAME 名字即可