环境准备

内置数据库

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.配置:

  1. 安装完毕,打开此目录,运行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规范的更多相关文章

  1. SonarQube配置LDAP认证集成

    1.准备工作 获取LDAP服务信息.admin账号.安装sonarldap插件. 2.LDAP配置 #LDAP settings #admin sonar.security.realm=LDAP ld ...

  2. OpenCV On Android环境配置最新&最全指南(Android Studio篇)

    本文是从本人简书上搬运而来,属本人原创,如有转载,请注明出处:http://www.jianshu.com/p/6e16c0429044 简介 本文是<OpenCV On Android环境配置 ...

  3. OpenCV On Android环境配置最新&最全指南(Eclipse篇)

    简介 本教程是经过本人多次踩坑,并参考网上众多OpenCV On Android的配置教程总结而来,尽希望能帮助学习移动图像处理的朋友们少走弯路.这也是本人第一次在简书上发布文章,如有不足,希望各位d ...

  4. Ubuntu13.04配置完全指南(转)

    Ubuntu13.04配置完全指南(一)软件源 教育网推荐使用USTC软件源. 首先备份现有软件源: $ sudo cp /etc/apt/sources.list /etc/apt/sources. ...

  5. APICloud首款全功能集成开发工具重磅发布,彰显云端一体理念

    近日,APICloud重磅推出首款云端一体的全功能集成开发工具--APICloud Studio 2.为了更深入了解这款开发工具的特性及优势,APICloud CTO 邹达针对几个核心问题做出了解答. ...

  6. 使用MyBatis集成阿里巴巴druid连接池(不使用spring)

    在工作中发现mybatis默认的连接池POOLED,运行时间长了会报莫名其妙的连接失败错误.因此采用阿里巴巴的Druid数据源(码云链接 ,中文文档链接). mybatis更多数据源参考博客链接 . ...

  7. 站点部署,IIS配置优化指南[转]

    站点部署,IIS配置优化指南 目录 一.       设置应用程序池默认设置 二.       常规设置 三.       优化回收策略 四.       性能 五.       IIS初始化(预加载 ...

  8. [转帖]站点部署,IIS配置优化指南

    站点部署,IIS配置优化指南 https://www.cnblogs.com/heyuquan/p/deploy-iis-set-performance-guide.html 挺值得学习的 毕竟之前很 ...

  9. 【转】一个 Vim 重度用户总结的 vim 超全指南

    [转]一个 Vim 重度用户总结的 vim 超全指南 我本人是 Vim 的重度使用者,就因为喜欢上这种双手不离键盘就可以操控一切的feel,Vim 可以让我对文本的操作更加精准.高效. 对于未使用过 ...

随机推荐

  1. 动态添加checkbox

    <!--动态添加 checkbox--> <script type="text/javascript"> var data = new Array(); & ...

  2. 吴裕雄--天生自然 JAVASCRIPT开发学习:对象 实例(3)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. C++ new和delete运算符简介

    在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数.如下所示: ); //分配10个int型的内存空间 free(p); //释放内存 在C++中,这两个函数仍然可以使 ...

  4. [LC] 215. Kth Largest Element in an Array

    Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...

  5. php结合Redis实现高并发下的秒杀抢购功能

    实现思路 准备两个队列A和B,假设A队列的名称为stock,用于存放商品总库存信息,B队列的名称为users,用于存放抢购成功后的用户信息.每当有用户进行抢购操作时,先从A队列弹出一个元素,如果该元素 ...

  6. POJ 2553 The Bottom of a Graph Tarjan找环缩点(题解解释输入)

    Description We will use the following (standard) definitions from graph theory. Let V be a nonempty ...

  7. Apollo核心概念之“Namespace”

    转载于https://github.com/ctripcorp/apollo,by Ctrip, Inc. Apollo核心概念之“Namespace” 1. 什么是Namespace? Namesp ...

  8. VMware虚拟机里安装CentOS 6.3图文教程

    著名服务器版本 CentOS 6.3 已经发布 http://www.centoscn.com/CentosSoft/iso/2013/0720/370.html CentOS 6.3 网易镜像下载: ...

  9. 20. API概览 Schemas

    能被机器所理解的概要, 描述了通过api可得到的资源, URL, 表示方式以及支持的操作. API概要在很多使用场景下都是有用的工具, 例如生成参考文档, 或者驱动可以与API交互的动态客户端库. r ...

  10. 深度学习论文笔记:Fast R-CNN

    知识点 mAP:detection quality. Abstract 本文提出一种基于快速区域的卷积网络方法(快速R-CNN)用于对象检测. 快速R-CNN采用多项创新技术来提高训练和测试速度,同时 ...