环境准备

内置数据库

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. 牛客-Forsaken的数列(Treap)

    题目传送门 sol:第一次看题还真信了是用线段树来做,但是没什么想法,看了题解发现是我不会的Treap,然后花了几天时间学习了一下并补掉题目 无旋Treap #include <bits/std ...

  2. 量化预测质量之分类报告 sklearn.metrics.classification_report

    classification_report的调用为:classification_report(y_true, y_pred, labels=None, target_names=None, samp ...

  3. Qt 项目中main主函数及其作用

    main.cpp 是实现 main() 函数的文件,下面是 main.cpp 文件的内容. #include "widget.h" #include <QApplicatio ...

  4. django框架基础-django redis-长期维护-20191220

    ###############   django框架-django redis    ############### # 学习django redis我能得到什么? # 1,项目中广泛使用到redis ...

  5. Base64基础知识

    转载自百度百科:http://baike.baidu.com/link?url=tI0FbG-ALTTNhRsaQHWXqdVWQDCq4bwd5Xsc0m46M8DKZ5jJyVWnr3IvTprh ...

  6. webpack中使用ECharts

    npm安装ECharts 引入ECharts 通过 npm 上安装的 ECharts 和 zrender 会放在node_modules目录下.可以直接在项目代码中 require('echarts' ...

  7. sm4算法(附源码、测试代码)

    from:http://blog.csdn.net/mao0514/article/details/52930944 SM4是我们自己国家的一个分组密码算法,是国家密码管理局于2012年发布的.网址戳 ...

  8. Python之configparser配置文件的读取

    配置文件名 config.ini 文件内容: [linux] ip:10.0.13.26 port:22 username:root password:W2ynE6b58wheeFho [mysql] ...

  9. JXJJOI2018_三题

    这次比赛的话其实还挺满意的,虽然T1 20pts(指的是分数,考试时知道有坑但是考完都没找到的我就知道切不掉这题qwq),T3爆零是在意料之外,不过其实T2贪心能切掉也是意料之外的,所以作此判断.当然 ...

  10. [BZOJ 3144][HNOI 2013] 切糕

    题目大意 切糕是 (p times q times r) 的长方体,每个点有一个违和感 (v_{x, y, z}).先要水平切开切糕(即对于每个纵轴,切面与其有且只有一个交点),要求水平上相邻两点的切 ...