1、启动SonarQube服务

1
2
$ mkdir -p /sonar/{conf,data,extensions}
$ docker run -v /sonar/conf:/opt/sonarqube/conf -v /sonar/data:/opt/sonarqube/data -v /sonar/extensions:/opt/sonarqube/extensions -p 9000:9000 xhuaustc/sonarqube:7.9.1

本地目录为~/Downloads/sonar/
2、登录SonarQube服务端:http://127.0.0.1:9000/projects,登录用户名:admin,密码:admin
3、创建新的项目,获得projectKey与token值
4、下载对应版本的sonar scanner工具:SonarScanner下载地址
5、请在代码目录中执行扫描工具

1
2
3
4
5
6
/xx/bin/sonar-scanner \
-Dsonar.projectKey=test \
-Dsonar.sources=. \
-Dsonar.host.url=http://127.0.0.1:9000 \
-Dsonar.login=647c09f3fc72c1b935fb06f20941833435690652 \
-Dsonar.exclusions=**/*R*.java,**/*Test.java,**/*(!.java),**/*.js

exclusions排除文件说明:

1
2
3
? 匹配单个字符 
** 匹配0个或多个文件夹
* 匹配0个或多个字符

本地目录为~/Downloads/sonar-scanner-4.2.0.1873-macosx
5、登录到SonarQube服务端,查看扫描结果。主要关注issues中的Bug与Vulnerability

说明
也可以直接通过docker来扫描应用,参考https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/#
例如:

1
2
3
4
5
6
docker run \
--rm \
--user="$(id -u):$(id -g)" \
-e SONAR_HOST_URL="http://${SONARQUBE_URL}" \
-v "${YOUR_REPO}:/usr/src" \
sonarsource/sonar-scanner-cli

插件补充

1、导出pdf报告插件【适用SonarQube版本 : 5.5–7.5】
https://gitee.com/zzulj/sonar-pdf-plugin

参考文档

SonarQube中文网站
SonarScanner下载地址