一、Sonar介绍
1.1简介
Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。通过插件机制,Sonar可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。
1.2版本分类
社区版 | 免费 支持SonarQube + 60种插件 支持SonarLint 支持9种编程语言(Java、JavaScript、C#、TypeScript、Flex、Python、PHP、Web&XML) |
开发版 | (社区版基础上) 120$ 起 支持分支代码分析 支持SonarLint 语法提示 支持16种编程语言 |
企业版 | (开发版基础上) 15000$ 起 Portfolio management Executive reporting 支持20种编程语言 |
数据中心版 | (企业版基础上) 100000$ 起 Component redundancy Data integrity |
1.3用途
Sonar可以有效检测在程序开发过程中的七大问题:
1) 糟糕的复杂度分布
2) 重复代码
3) 缺乏单元测试
4) 没有代码标准
5) 没有足够的或者过多的注释
6) 潜在的BUG
7) 糟糕的设计
二、下载与安装
2.1下载
官网地址:https://www.sonarqube.org/downloads/
2.2下载插件
2.2.1插件库
Plugin+Library:https://docs.sonarqube.org/display/PLUG/Plugin+Library
SonarQubeCommunity:https://github.com/SonarQubeCommunity
汉化插件:https://github.com/SonarQubeCommunity/sonar-l10n-zh
2.2.2安装插件
将下载好的插件放到${SONAR_HOME}/extensions/plugins目录下,重启Sonar服务即可。
2.3 安装SonarQube
2.3.1 Windows平台安装
步骤一:创建数据库
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'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;
步骤二:修改${SONAR_HOME}/conf/sonar.properties
修改数据库配置
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
修改Sonar Web端口(可选配置)
Sonar Web 默认端口为9000,如需修改,可将 ${SONAR_HOME}/conf/sonar.properties中的sonar.web.port=9000改成其它端口值。 修改根目录(可选配置) 默认值为"/",启动后访问地址为 localhost:9000
若将sonar.web.context修改为/sonarqube,则启动后访问地址未localhost:9000/sonarqube。
步骤三:启动Sonar服务
找到安装目录下${SONAR_HOME}/bin/windows-x86-64/StartSonar.bat,双击运行即可。
启动画面如下:
Sonar安装初始化的数据库:
Sonar默认安装的插件:
步骤四:访问Sonar
访问地址:http://localhost:9000/sonarqube
默认账号:admin/admin
2.3.2 Linux平台安装
略
三、环境说明
SonarQube社区版 SonarQube 7.2(最新版本)
SonarQube 6.7.4 (LTS *) 【建议使用该版本】
Sonar Scanner 3.2.0
MySQL 5.6+
JDK 1.8+
Maven 3.1+
Jenkins 2.89.4+
四、Sonar Scanner
4.1官方教程
Analyzing with SonarQube Scanner
4.2下载
1)