SonarQube 介绍
SonarQube 是 一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测,
如 Java、Python、Groovy、C、C++等几十种编程语言的检测。它主要的核心价值体现在如下几个方面:
检查代码是否遵循编程标准:如命名规范,编写的规范等。
检查设计存在的潜在缺陷:SonarQube 通过插件 Findbugs、Checkstyle 等工具检测代码存在的缺陷。
检测代码的重复代码量:SonarQube 可以展示项目中存在大量复制粘贴的代码。
检测代码中注释的程度:源码注释过多或者太少都不好,影响程序的可读可理解性。
检测代码中包、类之间的关系:分析类之间的关系是否合理,复杂度情况。
SonarQube 平台是由 4 个部分组成:
- SonarQube Server
- SonarQube Database
- SonarQube Plugins
- SonarQube Scanner
SonarQube 工作流程
SonarQube 在进行代码质量管理时,会从下图 所示的七个纬度来分析项目的质量。
官方地址:https://www.sonarqube.org/
环境准备:
注意:sonar服务器至少需要2G的内存才能有效运行,而操作系统则需要1GB的可用内存。
sonarqube-7.2.1
MySQL 5.7
JDK 1.8.0_222
Centos 7.4
版本说明:
sonarqube5.6+ 必须要JDK1.8,所以JDK1.7下只能安装sonar5.5 . 社区版不需要注册秘钥。
为安全起见,sonar的安装和启动不用root用户,而是用低权限的linux用户。
SonarQube安装
1、数据库配置
创建SonarQube 服务所需的数据库:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonarpassword';
FLUSH PRIVILEGES;
2、SonarQube配置
下载 SonarQube7.2 后解压。按如下配置修改 $SONAR_HOME/conf/sonar.properties 文件:
sonar.jdbc.username=sonar
sonar.jdbc.password=sonarpassword
sonar.jdbc.url=jdbc:mysql://192.168.1.3:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.web.host=0.0.0.0
sonar.web.context=/
sonar.web.port=9000
3、启动SonarQube
创建普通用户,SonarQube整个目录全部授权普通用户所属组权限
进入sonar的bin目录($SONAR_HOME/bin/linux-x86-64),执行脚本 sonar.sh start
浏览器中访问 http://192.168.1.50:9000/
默认登录账户 admin 密码 admin,可登录后修改密码。
3.1 配置sonarqube开机启动
(1)添加sonar环境变量
修改 ~/.bash_profile
cat ~/.bash_profile
SONAR_HOME=/sie/sonarQube/sonarqube
PATH=PATH:$SONAR_HOME/bin/linux-x86-64
export PATH SONAR_HOME
2)/etc/init.d 下增加sonar 文件
#!/bin/sh
# chkconfig: 345 96 10
# description: SonarQube system
#
# Provides: sonar
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: SonarQube system
# Description: SonarQube system
/usr/bin/sonar $*
(3)加入开机启动列表
ln -s $SONAR_HOME/bin/linux-x86-64/sonar.sh /usr/bin/sonar
chmod 755 /etc/init.d/sonar
chkconfig --add sonar
4、汉化
下载 sonarqube7.2 汉化包 ,是个jar包,放到$SONAR_HOME/extensions/plugins ,重启sonarqube (sonar.sh restart)
5.Sonar 集成Jenkins使用
5.1.设置sonar中的令牌
用 admin 用户登陆 sonarQube,【配置】–>【权限】 –>【用户】
5.2.Jenkins 安装sonar相关插件
安装红框中的两个插件即可
5.3.Jenkins配置sonar插件
点击【系统管理】 –> 【系统设置】 配置 Sonar认证信息,设置完保存
点击【系统管理】 –> 【全局工具配置】,配置sonar扫描器信息
5.4.Jenkins job 中配置sonar
sonar.projectKey=项目工程
sonar.projectName=环境项目工程
sonar.projectVersion=1.0版本
sonar.language=java
sonar.java.source=1.8
sonar.sources=项目工程/src
sonar.java.binaries=构建目录
sonar.login=账号
sonar.password=账号密码
或者
sonar.projectKey=项目工程
sonar.projectName=项目工程
sonar.projectVersion=1.0
sonar.login=在jenkins配置凭据的ID
sonar.sourceEncoding=UTF-8
sonar.sources=$WORKSPACE
sonar.java.binaries=$WORKSPACE
这样我们Jenkins中sonar的部分就配置完了,我们可以保存job进行构建,构建完成,可以通过构建历史,直接跳转到sonar到分析页面,如下图所示
查看分析结果
构建jenkins job后,分析结果将发送到sonarqube。
就这样,代码质量分析平台sonarqube实现完成。可以投入使用了。