sonarqube配置全指南,集成阿里巴巴p3c规范
环境准备
内置数据库
Sonar安装成功后,默认内置H2数据库,用于记录单次的扫描结果,对同一个project重复扫码,会覆盖之前的扫描记录,所以H2 数据库只应用于测试,不可以用于生产环境,那如果你是想玩玩,不想长期扫描你的项目,可以不必配置数据库
自定义数据库:
- Oracle
- SQL Server(只支持SQL Server 2014 以及 SQL Server2016)
- PostgreSQL
- MYSQL 版本限制: 8.0>MYSQL>=5.6
(注官方说明,从Sonar7.9版本,不再支持Mysql),以下链接
End of Life of MySQL Support : SonarQube 7.9 and future versions do not support MySQL.
Please migrate to a supported database. Get more details at
https://community.sonarsource.com/t/end-of-life-of-mysql-support
https://jira.sonarsource.com/browse/SONAR-11963
安装步骤
1.安装sonarqube:
安装的是windows 7.4 community社区版
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.4.zip
我之前是用最新的8.2版本,不过问题很多,而且评价说最新的不是很稳定,不支持mysql,最后使用的7.4版本,
官网下载比较慢,大家如果无法下载可以留言回复我,或者关注文末二维码私信我。
2.安装JDK:
我安装的JDK11(1.8版本无法安装最新的sonarqube 8.2,7.x是可以的,大家选择时候需要注意)
如果无法找到下载地址,私信我。
3.选择数据库
4.配置:
安装完毕,打开此目录,运行StartSonar.bat

2.启动浏览器,访问http://localhost:9000 , 如出现下图则表示安装成功。

3.配置连接数据库 :
打开conf文件夹下的sonar.properties文件,底部追加如下:
如果是SQL Server,追加:
- sonar.jdbc.url=jdbc:sqlserver://10.60.215.202;databaseName=sonar
- sonar.jdbc.username=sa
- sonar.jdbc.password=123456
如果是MYSQL:
- sonar.jdbc.url=jdbc:mysql://10.60.253.34:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
- sonar.jdbc.username=root
- sonar.jdbc.password=123456
- sonar.sorceEncoding=UTF-8
- sonar.login=admin
- sonar.password=admin
4.重启,即重新运行StartSonar.bat,使用admin ,admin登陆系统。配置数据库之后,会初始化表信息,耐心等待一段时间。

5.Sonar中创建project ,并配置命令

5.在IDEA中进到要扫描的项目根目录,执行:
mvn sonar:sonar -Dsonar.projectKey=test_project -Dsonar.host.url=http://10.60.25.121:9000 -Dsonar.login=6dc9cd89575d252d12d450267a64c0ee4bca3c65
扫描结果:


这里扫码的时候,IDEA提示lifecycle-mapping jar包找不到,使用这个方式安装一下就好
git clone https://github.com/mfriedenhagen/dummy-lifecycle-mapping-plugin.git , 然后mvn package即可安装这个缺失的包。
集成阿里巴巴p3c

该指南整合了阿里巴巴集团技术团队多年来的最佳编程实践。 随着我们鼓励重用和更好地理解彼此的程序,大量的Java编程团队对项目之间的代码质量提出了苛刻的要求。 过去我们已经看到许多编程问题。 例如,有缺陷的数据库表结构和索引设计可能会导致软件体系结构缺陷和性能风险。 另一个例子是难以维护的混乱代码结构。 此外,未经身份验证的易受攻击的代码容易受到黑客的攻击。 为了解决这类问题,我们在阿里巴巴为Java开发人员开发了本文档。alibaba p3c 地址: https://github.com/alibaba/p3c
如何应用该指南来规范我们的项目代码呢,我们可以在sonar中引入sonar-p3c这个开源插件,下面介绍下详细步骤:
build sonar-p3c plugin插件:
sonar 7.4版本,一定要参照如下链接: https://github.com/rhinoceros/sonar-p3c-pmd/releases/tag/pmd-3.2.0-beta-with-p3c1.3.6-pmd6.10.0 , 100%无问题。
#### 具体步骤
##### a.打包branch
git clone --single-branch --branch p3c-pmd-1.3.6-branch https://github.com/rhinoceros/p3c.git
clone下来之后,打包
mvn clean install -Dgpg.skip=true
b.打包plugin
git clone https://github.com/rhinoceros/sonar-p3c-pmd/tree/pmd-3.2.0-beta-with-p3c1.3.6-pmd6.10.0
clone下来之后,打包
mvn clean package
### 部署p3c插件
将上一步打好的jar包 ,放到sonar extensions/plugins下,重启SonarQube

点击Quality Proifles,并点击Create

选择Java并命名

点击Active More

左侧filter搜索p3c,并选择Bulk Change,将p3c规则加入刚创建的profile中


回到Quality Profiles,设置刚刚的profile为默认

到此,p3c规则成功集成到Sonar中。现在测试下:
点击Create new project

选择Java,并生成token,生成mvn命令,Copy,直接在项目里执行即可


Idea中扫描会很快,Sonar中会一直显示In Progress,需要等一会才有分析结果。成功执行后结果如下,说明p3c已经成功检查我们的代码

------------------------------------------ END ------------------------------------------------------
** 刚刚开始写文章,还望老哥点赞推荐下。**
更多好文,关注作者:

本文由博客群发一文多发等运营工具平台 OpenWrite 发布
sonarqube配置全指南,集成阿里巴巴p3c规范的更多相关文章
- SonarQube配置LDAP认证集成
1.准备工作 获取LDAP服务信息.admin账号.安装sonarldap插件. 2.LDAP配置 #LDAP settings #admin sonar.security.realm=LDAP ld ...
- OpenCV On Android环境配置最新&最全指南(Android Studio篇)
本文是从本人简书上搬运而来,属本人原创,如有转载,请注明出处:http://www.jianshu.com/p/6e16c0429044 简介 本文是<OpenCV On Android环境配置 ...
- OpenCV On Android环境配置最新&最全指南(Eclipse篇)
简介 本教程是经过本人多次踩坑,并参考网上众多OpenCV On Android的配置教程总结而来,尽希望能帮助学习移动图像处理的朋友们少走弯路.这也是本人第一次在简书上发布文章,如有不足,希望各位d ...
- Ubuntu13.04配置完全指南(转)
Ubuntu13.04配置完全指南(一)软件源 教育网推荐使用USTC软件源. 首先备份现有软件源: $ sudo cp /etc/apt/sources.list /etc/apt/sources. ...
- APICloud首款全功能集成开发工具重磅发布,彰显云端一体理念
近日,APICloud重磅推出首款云端一体的全功能集成开发工具--APICloud Studio 2.为了更深入了解这款开发工具的特性及优势,APICloud CTO 邹达针对几个核心问题做出了解答. ...
- 使用MyBatis集成阿里巴巴druid连接池(不使用spring)
在工作中发现mybatis默认的连接池POOLED,运行时间长了会报莫名其妙的连接失败错误.因此采用阿里巴巴的Druid数据源(码云链接 ,中文文档链接). mybatis更多数据源参考博客链接 . ...
- 站点部署,IIS配置优化指南[转]
站点部署,IIS配置优化指南 目录 一. 设置应用程序池默认设置 二. 常规设置 三. 优化回收策略 四. 性能 五. IIS初始化(预加载 ...
- [转帖]站点部署,IIS配置优化指南
站点部署,IIS配置优化指南 https://www.cnblogs.com/heyuquan/p/deploy-iis-set-performance-guide.html 挺值得学习的 毕竟之前很 ...
- 【转】一个 Vim 重度用户总结的 vim 超全指南
[转]一个 Vim 重度用户总结的 vim 超全指南 我本人是 Vim 的重度使用者,就因为喜欢上这种双手不离键盘就可以操控一切的feel,Vim 可以让我对文本的操作更加精准.高效. 对于未使用过 ...
随机推荐
- 【flask】RestFul的基本鉴权
编写API的基本鉴权 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : shenqiang from flask import Fla ...
- Linux下安装mysql(yun方式)
1.进入下载好的mysql版本 cd /usr/local/mysql 2.解压安装包 tar -xzvf mysql-5.7.11.tar.gz 3.改名 直接改或者 mv 文件名 要改的文件名m ...
- Two Sum(Medium)
1.遍历一次nums,利用map记录已经遍历过的nums[i],并记录其index :i+1 2.每次求出b=target-nums[i],检测b是否在map中,如果在,则已经得到答案,否则,把num ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-测试类中调用封装的mock(10)
封装mock后,在单元测试中调用 # -*- coding: utf-8 -*- # @Time : 2020/2/11 8:35 # @File : test_class_10.py.py # @A ...
- Nginx笔记:对url中携带的参数进行多次判断
Nginx中只支持简单的if语句,不支持多条件判断和嵌套,通过特殊的方式也可以达到效果 location / { proxy_set_header Host $host; proxy_set_head ...
- windows下Jmeter压测端口占用问题
https://blog.csdn.net/weixin_43757847/article/details/88188091 1 前情提要人脸识别项目中,云平台新增了人脸识别的校验接口.考虑到存在大量 ...
- python3下应用requests
模拟浏览器请求有两种,一种是不需要用户登录或者验证的请求,一种是需要用户登录或者验证的请求 那么我们先来说说不需要用户登录的方法 这种方式直接可以获取源码,用get的请求方式 登录的方式 获取这种页面 ...
- Lua 学习 chapter30 编写c函数的技巧 - Jow的博客
目录 数组操作 字符串操作 在c函数中保存状态 生活总需要一点仪式感,然后慢慢的像那个趋向完美的自己靠近. 数组操作 Lua中的数组就是以特殊的方式使用边.像lua_setttable and lua ...
- 吴裕雄--天生自然HTML学习笔记:HTML <head>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- php 正则获取html任意标签
<?php $temp = ' <div class="num">1</div> <div class="num">2 ...