- A+
SonarQub e 是 一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测, 如 J ava、Python、Groovy、C、C++等几十种编程语言的检测。它主要的核心价值体现在如下几个方面:
- 检查代码是否遵循编程标准:如命名规范,编写的规范等。
- 检查设计存在的潜在缺陷:SonarQub e 通 过插 件 F indbugs、Checkstyl e 等 工具检测代码存在的缺陷。
- 检测代码的重复代码量:SonarQub e 可 以展示项目中存在大量复制粘贴的代码。
- 检测代码中注释的程度:源码注释过多或者太少都不好,影响程序的可读可理解性。
- 检测代码中包、类之间的关系:分析类之间的关系是否合理,复杂度情况
SonarQube 平 台是 由 4 个 部分组成:
- SonarQube Server
- SonarQube Database
- SonarQube Plugins
- SonarQube Scanner
一.安装要求
Centos 7
RAM: 2G
SonarQube:5.6.6
二.准备环境
1.创建Mysql数据库
mysql>create database sonar character set utf8 collate utf8_general_ci;
mysql>create user 'sonar' identified by 'sonar@123';
mysql>grant all on sonar.* to 'sonar'@'%' identified by 'sonar@123';
mysql>grant all on sonar.* to 'sonar'@'localhost' identified by 'sonar@123';
mysql>flush privileges;
三.安装Sonarqube
1.下载
wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.6.zip
2.解压
unzip sonarqube-5.6.6.zip
mv sonarqube-5.6.6 /opt/sonarqube
3.配置环境变量
vim /etc/profile #sonar export SONAR_HOME=/opt/sonarqube export PATH=${SONAR_HOME}/bin:${PATH}
使配置生效
source /etc/profile
4.修改配置文件
vim /opt/sonarqube/conf/sonar.properties sonar.jdbc.username=sonar sonar.jdbc.password=sonar@123 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance #Option properties 此配置项配置文件没有,需粘贴到配置文件中 sonar.jdbc.driverClassName:com.mysql.jdbc.Driver
5.配置DB驱动(Mysql此步骤省略)
sonar默认支持h2、mssql、mysql、postgresql数据库,如使用oracle jdbc需手动把驱动复制到/opt/sonarqube/extensions/jdbc-driver/oracle/中
6.创建sonar软连接
ln -s /opt/sonarqube/bin/linux-x86-64/sonar.sh /opt/sonarqube/bin/sonar
7.启动
/opt/sonarqube/bin/linux-x86-64/sonar.sh start或sonar start
8.添加防火墙策略
firewall-cmd --permanent --zone=public --add-port=9000/tcp
firewall-cmd --reload
9.安装中文插件,默认登录用户名和密码都是admin
安装完插件后重启一下sonar
sonar restart
重启完后登录界面已经变成中文的了。
10.安装语言插件(分析什么语言,你就需要安装什么语言的插件
)
默认自带语言插件有C#,Java,JS,安装Python
1.下载
wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-linux.zip
2.解压
unzip sonar-scanner-cli-3.0.3.778-linux.zip
mv sonar-scanner-3.0.3.778-linux/ /opt/sonar-scanner
3.配置环境变量
vim /etc/profile #sonar-scanner export SONAR_SCANNER_HOME=/opt/sonar-scanner export PATH=${SONAR_SCANNER_HOME}/bin:${PATH}
更新配置
source /etc/profile
4.修改配置文件,关联sonar
vim /opt/sonar-scanner/conf/sonar-scanner.properties sonar.host.url=http://localhost:9000 sonar.sourceEncoding=UTF-8
5.测试是否配置成功
sonar-scanner -h
四.与Jenkins集成
1.安装插件
2.生成连接token
4.Jenkis 配置 SonarQube Scanner
5.现有项目添加SonarQube Scanner
因项目配置了版本回滚,所以我们在生成war包后在Post Steps项添加检测源码
Execute SonarQube Scanner Task to run scan #分析代码 #自己定义的jdk JDK jdk Path to project properties #可指定sonar-project.properties,如不指定使用项目默认配置 Analysis properties #可配置参数传给Sonar,优先级高于sonar-project.properties sonar.projectKey=tsp-war #可填写项目名称 sonar.projectName=tsp-war sonar.projectVersion=1.0 sonar.language=java #分析语言 sonar.java.binaries=$WORKSPACE/target/classes/com sonar.sources=$WORKSPACE/src #源码路径 Additional arguments -X #进入Debug 模式
注:SonarQube Scanner进行代码分析,第一种是使用构建后步骤,第二种是在构建的过程中增加 SonarQube Scanner 的步骤。此处使用的是构建过程中