SonarQube使用手册

一、简介

SonarQube是一种自动代码审查工具,可检测代码中的错误,漏洞和不优雅的地方。我们知道alibaba/p3c也是一款优秀的代码规范检查工具,但是其更倾向于开发人员编程时进行实时规范检查,SonarQube则更方便于开发团队进行整体代码审查,规范管理。

二、安装SonarQube服务

1.下载安装包

SonarQube官方下载页面https://www.sonarqube.org/downloads/,这里我们下载免费的社区版:
SonarQube使用手册_第1张图片

(经过验证,SonarQube 7.9开始需要Java 11且不支持mysql了,所以这里我们选择7.8版本进行下载)

我们把页面拉到最下面,选择Historical Downloads

SonarQube使用手册_第2张图片
SonarQube使用手册_第3张图片
下载完成后得到一个压缩包,解压到我们平时的安装程序目录即可

2.汉化

由于低版本SonarQube自带的插件商店没有对应的汉化版本,这里我们自己下载汉化插件。

下载地址https://github.com/xuhuisheng/sonar-l10n-zh/releases,下载下方的jar包即可
SonarQube使用手册_第4张图片
下载完成之后,我们将这个jar包放入SonarQube的安装目录下的extensions\plugins文件夹中即可。

3.创建SonarQube数据库

由于SonarQube默认使用的内嵌数据库H2,这种不适应于生产环境,所以我们替换成mysql数据库,首先创建一个名为sonar的数据库,然后在SonarQube的配置文件conf\sonar.properties中添加如下配置:
SonarQube使用手册_第5张图片

# 数据库连接信息
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
# SonarQube的web页面登录信息
sonar.login=admin
sonar.password=admin

至此,SobarQube的配置已经完成,这时候我们启动bin\windows-x86-64\StartSonar.bat即可(不同的系统平台执行相应的启动脚本)。或者可以执行此目录中的InstallNTService.bat脚本将SonarQube安装成系统服务,这样就可以直接在服务中管理了。

启动完成后,我们访问http://localhost:9000,输入配置的登录账号信息,即可进入到SonarQube web页面。

注:
执行StartSonar.bat脚本启动SonarQube后,如果不小心关闭了控制台,其实这个时候SonarQube并没有被关闭,后台还有进程在,所以下次启动时会报错,这个时候就要手动杀掉进程了。

三、在SonarQube中创建第一个测试项目

1.在SonarQube页面选择创建项目

SonarQube使用手册_第6张图片
2.输入项目标识和显示名称
SonarQube使用手册_第7张图片

3.然后点击创建令牌
SonarQube使用手册_第8张图片
SonarQube使用手册_第9张图片
这个时候我们要把这个令牌复制下来,因为后面就看不到了

4.下面选择项目的主要语言以及构建技术
SonarQube使用手册_第10张图片

这里项目就已经创建好了,然后可以通过不同的质量检测方式将结果推送到这个项目里来。

四、使用

下面将通过三种方式来使用SonarQube的代码扫描功能:

① Maven方式执行代码检测
② SonarScanner方式执行代码检测
③ 集成Jenkins执行代码检测

1.集成maven执行代码扫描

创建完项目后,我们选择maven方式构建,即可看到SonarQube给我们提供的maven扫描命令

mvn sonar:sonar \
 -Dsonar.projectKey=test \
 -Dsonar.host.url=http://localhost:9000 \
 -Dsonar.login=7a13de184fe9d79c59e24062d0065bd87b7064e9

进入到要扫描的代码目录,执行上面的maven命令即可,执行完毕后在SonarQube页面即可看到扫描结果。
SonarQube使用手册_第11张图片SonarQube使用手册_第12张图片
SonarQube使用手册_第13张图片

注:
上面的命令中有些是固定的信息,如果每次执行扫描都需要输入则显的很麻烦,这里我们可以将某些信息配置到maven的setting.xml

<profile>
  <id>sonarid>
  <activation>
	<activeByDefault>trueactiveByDefault>
  activation>
  <properties>
	<sonar.host.url>http://127.0.0.1:9000sonar.host.url>
	<sonar.login>7a13de184fe9d79c59e24062d0065bd87b7064e9sonar.login>
  properties>
profile>

以后直接执行mvn sonar:sonar -Dsonar.projectKey=test即可。甚至mvn sonar:sonar都可以,SonarQube会自动以maven的坐标为项目key去创建项目。

2.通过SonarScanner执行代码扫描

SonarQube提供了SonarScanner组件来帮助我们执行扫描,首先下载https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
SonarQube使用手册_第14张图片

下载之后是个压缩包,解压即可,为了方便使用,我们可以将解压后的目录下的bin目录加入到环境变量中,这样可以直接使用sonar-scanner命令了(这里不再介绍环境变量的配置)。

打开SonarScanner的配置文件conf\sonar-scanner.properties,做如下修改:
SonarQube使用手册_第15张图片

进入到待扫描的项目目录下,新建sonar-project.properties文件,内容如下:

sonar.projectKey=test
sonar.projectName=test
#sonar.projectVersion=1.0
#sonar.sources=./src
sonar.sourceEncoding=UTF-8
#sonar.language=java
sonar.java.binaries=.

然后再命令行执行sonar-scanner即可。

3.集成Jenkins执行代码扫描

Jenkins作为一个开源的、提供友好操作界面的持续集成(CI)工具,广受大家的喜爱,Jenkins提供了SonarQube扫描插件可以方便的让我们直接扫描代码仓库中的代码质量,而前两种方式更偏向于开发人员本地去做,更依赖开发人员的自觉性,而使用Jenkins的方式则更方便对整个团队进行 Code Review,更方便的进行规范管理。

①.首先需要安装SonarQube Scanner插件,系统管理 > 插件管理,搜索SonarQube Scanner插件并安装;安装后进入到系统管理 > 系统配置 > SonarQube servers,添加SonarQube服务器

SonarQube使用手册_第16张图片

②.点开高级,添加固定配置信息
在这里插入图片描述

保存并应用。至此,Jenkins配置完毕。

③.现在我们新建一个任务测试一下:

SonarQube使用手册_第17张图片

④.然后输入代码仓库地址,
SonarQube使用手册_第18张图片

⑤.然后选择构建步骤,
SonarQube使用手册_第19张图片

⑥.然后添加如下构建参数,
SonarQube使用手册_第20张图片

最后保存即可。

这样我们当我们执行Jenkins的立即构建后即可在SonarQube上面看到扫描结果。

SonarQube默认支持匿名推送检测结果,即不需要传递令牌即可推送到SonarQube服务器,这样很不安全,我们用下面的方式关掉匿名推送的通道:
SonarQube使用手册_第21张图片
SonarQube使用手册_第22张图片
SonarQube使用手册_第23张图片

你可能感兴趣的:(安装手册)