pmd3.0.0集成p3c

本文介绍如何在SonarQube 6.7中集成阿里巴巴P3C编码规范,包括配置环境、添加依赖、自定义规则及规则描述等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 环境配置
    sonarqueb 6.7
    jdk 1.8
    p3c 1.3.6
    (本人集成代码例子:
    https://github.com/JacksonZhangHuaQuan/sonar-pmd-plugin.git)
  2. 集成P3C

(sonar-pmd是sonar官方的支持pmd的插件,但是还不支持p3c,实际上官方的pmd版本还一直没有更新,pmd最新版本已更新至5.8.1,但是插件中的版本依然是5.2.4。Clone:SonarQubeCommunity/sonar-pmd
https://github.com/SonarQubeCommunity/sonar-pmd.git

3. 添加POM依赖包

<!-- https://mvnrepository.com/artifact/com.alibaba.p3c/p3c-pmd -->
 
<dependency>
    <groupId>
com.alibaba.p3c</groupId>
    <artifactId>
p3c-pmd</artifactId>
    <version>
1.3.6</version>
  </dependency>
</dependencies>

4. 添加 pmd.properties

rule.pmd.CommentsMustBeJavadocFormatRule.name=CommentsMustBeJavadocFormatRule

5. 添加 rules.xml

<!--p3c-->

  <rule key="CommentsMustBeJavadocFormatRule">

    <priority>MAJOR</priority>

    <configKey><![CDATA[rulesets/java/ali-comment.xml/CommentsMustBeJavadocFormatRule]]>        </configKey>

  </rule>

6. 添加pmd-model.xml文件

<!--p3c-->

<chc>

  <rule-repo>p3c</rule-repo>

  <rule-key>CommentsMustBeJavadocFormatRule</rule-key>

  <prop>

    <key>remediationFunction</key>

    <txt>CONSTANT_ISSUE</txt>

  </prop>

  <prop>

    <key>offset</key>

    <val>2</val>

    <txt>min</txt>

  </prop>

</chc>

 

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

<p>Look for qualified this usages in the same class.</p>

<p>Examples:</p>

<pre>

/**

*

* XXX class function description.

*

*/

public class XxClass implements Serializable {

   private static final long serialVersionUID = 113323427779853001L;

   /**

   * id

   */

   private Long id;

   /**

   * title

   */

   private String title;

   /**

   * find by id

   *

   * @param ruleId rule id

   * @param page start from 1

   * @return Result<Xxxx>

   */

   public Result<Xxxx> funcA(Long ruleId, Integer page) {

       return null;

   }

}

</pre>​​​​​​​
  1. ​​​​​​​将上面项目mvn package 出来的jar包拷贝到 sonarqube-6.5\extensions\plugins下面
    1. 运行sonarqube-6.7\bin\windows-x86-64\StartSonar.bat

(注:暂时是在原有基础上添加一条规则,没有删除现有部分rule;如用完整添加48条规则,请到上面GitHub上(https://github.com/JacksonZhangHuaQuan/sonar-pmd-plugin.git)把代码拷下来慢慢研究

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值