SonarQube 9.x集成阿里p3c代码规范检测java代码;
Posted OkidoGreen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SonarQube 9.x集成阿里p3c代码规范检测java代码;相关的知识,希望对你有一定的参考价值。
Sonarqube8.9LTS搭建及SQL扫描插件安装及sonar-scanner使用全过程_sonarqube插件下载_acyb大麦的博客-CSDN博客Sonarqube安装环境要求JavaDatabase高版本的不再支持mysqlWeb BrowserLinux下载Javahttps://www.oracle.com/java/technologies/downloads/#java11选择版本11下载Sonarqube-8.9LTShttps://www.sonarqube.org/downloads/数据库Sonarqube-8.9已不支持mysql,使用已有的oracle 12C安装sonar.properhttps://blog.csdn.net/csdnklsdm/article/details/122706590plsql 扫描插件(跑起来非常慢。。不知道为什么):felipebz/zpa: A parser and static source code analyzer for PL/SQL and Oracle SQL. (github.com)https://github.com/felipebz/zpa
前言
因为我们公司后端主用的是java语言,在进行sonar代码检测的时候默认使用的是sonar检测规则,种种原因最后需要使用阿里的p3c代码规范来进行检测java代码;
sonarqube 9.x是没有集成p3c代码规范的
一、下载p3c-pmd插件
代码地址:
GitHub - caowenliang/sonar-pmd-p3c: sonarQube 整合 阿里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>
以上是关于SonarQube 9.x集成阿里p3c代码规范检测java代码;的主要内容,如果未能解决你的问题,请参考以下文章