【笔记】通过SonarScannerCli调用SonarQube进行代码检测

前言

通过SonarScannerCli调用SonarQube进行代码检测

准备工作

1
apt install unzip -y

下载客户端程序

1
2
3
4
5
6
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.0.2311-linux.zip
unzip sonar-scanner-cli-4.6.0.2311-linux.zip
rm sonar-scanner-cli-4.6.0.2311-linux.zip
mv sonar-scanner-4.6.0.2311-linux sonar-scanner-cli
# 临时引入环境变量
export PATH=$PATH:/etc/dockerfile/SonarQube/sonar-scanner-cli/bin

修改客户端配置

sonar.host.url:配置SonarQube服务URL
sonar.sourceEncoding:配置字符编码集

sonar-scanner-cli/conf/sonar-scanner.properties
1
2
3
4
5
#----- Default SonarQube server
sonar.host.url=http://127.0.0.1:9000

#----- Default source code encoding
sonar.sourceEncoding=UTF-8

在SonarQube生成Token

进行代码检测

  • 通过Token登录

project:项目根目录
sonar.sources:指定项目根目录
sonar.projectname:指定本次检测的任务名称(用于备注)
sonar.projectKey:指定本次检测的任务名称(绝对唯一的名称)
sonar.login:指定SonarQube用户的Token

1
2
cd project
sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=project -Dsonar.projectKey=project -Dsonar.login=<token>
  • 通过用户名和密码登录

sonar.login:指定SonarQube用户名
sonar.password:指定SonarQube密码

1
2
cd project
sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=project -Dsonar.projectKey=project -Dsonar.login=<username> -Dsonar.password=<password>

Java项目

sonar.java.binaries:指定编译后的jar包目录

1
2
cd project
sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=project -Dsonar.projectKey=project -Dsonar.login=<token> -Dsonar.java.binaries=./target/

完成

参考文献

哔哩哔哩——云原生技术架构