SonarQube的安装
SonarQube和sonarqube-scanner安装
https://blog.csdn.net/flysqrlboy/article/details/80525727
https://blog.csdn.net/qq_21816375/article/details/80787993
https://blog.csdn.net/weixin_40861707/article/details/82117232
sonarqube简介
SonarQube 是 一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测,
如 Java、Python、Groovy、C、C++等几十种编程语言的检测。它主要的核心价值体现在如下几个方面:
- 检查代码是否遵循编程标准:如命名规范,编写的规范等。
- 检查设计存在的潜在缺陷:SonarQube 通过插件 Findbugs、Checkstyle 等工具检测代码存在的缺陷。
- 检测代码的重复代码量:SonarQube 可以展示项目中存在大量复制粘贴的代码。
- 检测代码中注释的程度:源码注释过多或者太少都不好,影响程序的可读可理解性。
- 检测代码中包、类之间的关系:分析类之间的关系是否合理,复杂度情况。
SonarQube 平台是由 4 个部分组成:
- SonarQube Server
- SonarQube Database
- SonarQube Plugins
- SonarQube Scanner
SonarQube 工作流程
SonarQube 在进行代码质量管理时,会从下图 所示的七个纬度来分析项目的质量。
SonarQube 需要数据库的支持,用于存储检测项目后的分析数据,同时为了实现可持续监测,还需要持续集成工具(如Jenkins)的支持,在构建版本前,通过Jenkins+Sonar 插件执行项目分析指令,最终的结果会通过SonarQube 服务器的Web 页面展示。下图是使用SonarQube做代码持续审查的流程图:
开发人员把代码push到SCM(如gitlab)【上图第2步】,jenkins构建定义好的job,然后通过jenkins 插件(sonar scanner)分析源码【上图第3步】,jenkins把分析报告发到sonarqube server【上图第4步】。
安装
环境准备
centos 7
jdk 1.8 https://www.cnblogs.com/wangxu01/articles/11080806.html
Jenkins https://www.cnblogs.com/wangxu01/articles/11083823.html
mysql5.6
mysql授权
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'sonar' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar'@'10.6.76.27' IDENTIFIED BY 'sonar'; FLUSH PRIVILEGES;
sonar.properties
sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.jdbc.url=jdbc:mysql://10.6.76.28:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatch edStatements=true&useConfigs=maxPerformance&useSSL=false
启动
比例慢,尤其是第一次,出现以下才算成功
2019.07.01 10:06:28 INFO app[][o.s.a.SchedulerImpl] Process[ce] is up
2019.07.01 10:06:28 INFO app[][o.s.a.SchedulerImpl] SonarQube is up
登陆
admin/admin
汉化
安装Scanner
解压到目录(可解压到任意目录)。修改系统路 径 path,
加入系统变量/etc/profile
#sonar-scanner profile export SONAR_SCANNER_HOME=/opt/softs/sonarqube-6.7.2/sonar-scanner-2.8 export PATH=${SONAR_SCANNER_HOME}/bin:${PATH} # source /etc/profile
sonar-scanner -v