
前言
1.简介:
SonarQube是一个管理代码质量开放平台,可以快速定位代码中潜在的或者明显的错误,用于管理源代码的质量,可从七个维度检测代码质量。
通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测,高级货啊!
架构图如下:(还是不上图了,有图也看不懂)
一.安装篇
下载地址:https://www.sonarqube.org/downloads/

本文截稿最新为7.1版本,点击下载按钮进行下载即可。
下载完成解压后目录结构如下:

启动SonarQube:启动文件夹bin内包含在各种平台上对应不同启动文件。本人计算机为windows64位,点击进入选择StartSonar.bat点击进行启动


启动完成后命令行如下:

(注意:默认配置web端口为9000,系统采用H2数据库,稍后我们会修改默认配置适用生产环境。)
通过浏览器访问地址:http://localhost:9000/

点击登录按钮进行用户登录,用户名密码默认均为admin

登录成功生成令牌

点击继续

当然选择Java了,我的最爱

本人现在的项目构建工具Springboot1.5用的是Maven,SpringCloud用的是Gradle,选择哪个都无所谓了。

点击完成即可

主页如下

二.配置篇
作为一个代码分析平台,Sonar由以下三个部分组成:
①数据库:存放配置信息和分析结果信息;
②一个Web服务器:发布应用,在线浏览,配置分析;
③一个客户端:执行源代码分析;
1.支持国际化中文
SonarQube默认为英文,我们可以安装SonarQube提供的中文插件,
插件地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh


下载sonar-l10n-zh-plugin-1.21.jar完成后放在扩展文件夹中

安装成功后,重启sonarqube服务,再次访问http://localhost:9000/,即可看到中文界面

2.更改Web服务默认端口
如何启动sonar?
在SonarQube的bin目录下对应各种平台的启动方式,这样就会默认启动Sonar内置的web服务器,启动完成后,通过http://localhost:9000访问。
可以在conf/sonar.properties文件中修改一些web服务的相关信息,比如sonar.web.host,port和context。
建议将Sonar安装到单独的web服务器中,比如tomcat,安装的方式为:运行SONAR中war目录下的build-war.bat,执行完成后,会在本目录下生成一个名称为sonar.war的部署文件;将此war文件放置到对应的tomcat\webapps目录下,启动tomcat即可。

更改111行sonar.web.port=9000

3.更改默认数据库H2
Sonar中内置了derby和H2数据库,不需要任何安装。但一般情况下我们不使用Sonar自带的内建数据库。
将SonarQube解压后,其中conf/sonar.properties配置其数据库信息。需要配置以下属性:
属性 | 含义 |
sonar.jdbc.url | 数据库连接地址 |
sonar.jdbc.user | 数据库用户名 |
sonar.jdbc.password | 数据库密码 |
(以MYSQL数据库为例)


重启sonarqube服务,再次访问http://localhost:9000,会稍微有点慢,因为要初始化数据库信息。数据库初始化成功后登录

三.使用篇
客户端使用具体的程序工具进行分析,不同的语言,不同的项目构建类型可以使用不同的客户端程序。Sonar提供很多类型的客户端:
客户端 | 说明 |
Sonar Runner | 推荐默认客户端 |
Maven | 如果项目使用Maven构建推荐使用此种方式 |
Gradle | 如果项目使用Gradle构建推荐使用此种方式 |
Ant | 如果项目使用ant推荐使用此种方式 |
CI Engine | 持续集成,比如Hudson,Jenkins |
1.使用客户端之sonar-scanner
①打开D:\sonar\sonar-scanner-2.5\conf\sonar-scanner.properties文件

②mysql节点下输入以下信息

(注意:如果测试项目与服务器不在同一台机子,则需要添加服务器的IP:)

③配置环境变量
新建用户变量name=SONAR_RUNNER_HOME
value=D:\sonar\sonar-scanner-2.5

打开path,输入%SONAR_RUNNER_HOME%\bin;

上面配置好后打开命令窗口执行sonar-scanner -h

查看当前版本 sonar-scanner –v

④打开要进行代码分析项目根目录,新建sonar-project.properties文件,输入以下信息
(其中:projectName是项目名字,sources是源文件所在的目录)

⑤设置成功后,启动sonarqube服务,并启动cmd
⑥在cmd进入项目所在的根目录,输入命令:sonar-scanner,分析成功后会出现下图

⑦打开http://localhost:9000/,我们会看到主页出现了分析项目的概要图


⑧点击项目

⑨选择问题链接,会看到分析代码的bug

⑩选择一个最严重的bug看看

2.使用客户端之Maven
3.使用客户端之Gradle
4.使用客户端之Ant
5.使用客户端之CI Engine
四.常见问题
1.内存泄露
对于较大的工程项目,经常会出现内存不够的问题,需要重新设置
sonar-runner的虚拟机内存,在sonar-runner.bat中: SetSONAR_RUNNER_OPTS=-Xmx512m -XX:MaxPermSize=128m
更多使用,请登录官网自行学习。
http://www.sonarqube.org/
http://docs.sonarqube.org/display/SONAR/Analyzing+with+SonarQube+Scanner




