SonarQube 9.x集成阿里p3c代码规范检测java代码;

文章介绍了如何在Sonarqube中集成p3c-pmd插件,以应用阿里p3c代码规范进行Java代码质量检测。首先,从GitHub下载并编译插件,然后在Sonarqube中新建质量配置,添加并激活p3c规则,最后将p3c配置设为默认,以便在代码扫描时使用。
摘要由CSDN通过智能技术生成


前言

因为我们公司后端主用的是java语言,在进行sonar代码检测的时候默认使用的是sonar检测规则,种种原因最后需要使用阿里的p3c代码规范来进行检测java代码;

sonarqube 9.x是没有集成p3c代码规范的
在这里插入图片描述


一、下载p3c-pmd插件

代码地址:
https://github.com/caowenliang/sonar-pmd-p3c

[root@localhost tmp]# git clone https://github.com/caowenliang/sonar-pmd-p3c.git
[root@localhost tmp]# cd sonar-pmd-p3c/sonar-pmd-plugin/
[root@localhost sonar-pmd-plugin]# ll 
total 12
-rw-r--r-- 1 root root 4908 Jan 16 17:38 pom.xml
drwxr-xr-x 4 root root 4096 Jan 16 17:38 src

#编译打包 需要有maven环境
[root@localhost sonar-pmd-p3c]# mvn clean install -Dmaven.test.skip=true

在这里插入图片描述

打完包后在当前目录的target目录会有一个"sonar-pmd-plugin-3.2.1.jar"包,需要将其下并放到sonarqube的“Plugin”目录下然后重启sonar加载插件

在这里插入图片描述
重启后可以看到sonar-pmd-plugin插件已经加载了


这里我已经把软件包编译好了,需要可以免费获取:
sonar-pmd-plugin-3.2.1.jar



二、sonarqube配置使用p3c规则检测

在这里插入图片描述

sonar默认使用的是自己的规则进行代码检测的,没有使用p3c,所以需要在"质量配置"处新建一个配置并使用p3c的检测规则;

1.新建质量配置

"质量配置"-->创建
在这里插入图片描述


创建完成后默认是没有任何规则的,需要添加p3c的检测规则
在这里插入图片描述
在这里插入图片描述


可以看到"[p3c]xxx"开头的检测规则,下一步需要批量激活这些规则
在这里插入图片描述
在这里插入图片描述


2.将创建好的p3c检测规则设置为默认质量配置

在这里插入图片描述
这样就 配置完成 了。等待下次 sonar 扫描时就能直接使用这个p3c质量配置;




注1

p3c规则都属于异味,sonar 扫描代码后,在类型 “异味” 可以找到,分“阻断”、“严重”、“主要” 3个严重等级。

在这里插入图片描述


下面是导出的PDF分析报告,可以看出这次检测使用的是我们配置的p3c规则;
在这里插入图片描述



注2

在第一步maven编译打包p3c-pmd插件时可能会报如下错误
在这里插入图片描述
这是因为这个插件生成的大小为9兆,而默认作者给的大小是8兆,所以会报错;

解决办法:

[root@localhost sonar-pmd-plugin]# vim /tmp/sonar-pmd-p3c/sonar-pmd-plugin/pom.xml
<artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>enforce-plugin-size</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <phase>verify</phase>
            <configuration>
              <rules>
                <requireFilesSize>
                  #修改此处即可,默认为8000000字节
                  <maxsize>800000000</maxsize>
                  <minsize>4200000</minsize>
                  <files>
                    <file>${project.build.directory}/${project.build.finalName}.jar</file>
                  </files>
                </requireFilesSize>
              </rules>
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知名运维:

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值