第四篇 SonarQube部署及代码质量扫描
一、初始化SonarQube Token
点击 右上角账号 -> 下拉选择 我的账号 -> 点击 安全选项,输入 令牌名称 -> 点击 生成 或者 直接访问这个地址
http://10.10.10.144:9000/account/security/
生成之后记得复制并保存Token,不然页面刷新或者关闭后就无法查询到Token了。
二、扫描项目示例
如果通过sonar-scanner进行代码扫描的话需要下载sonar-scanner的安装包,如果通过maven或者sonarlint进行则不需要。
2.1、Maven扫描并提交到SonarQube
2.1.1、修改pom.xml文件
修改build节点,增加sonar-maven-plugin
org.sonarsource.scanner.maven
sonar-maven-plugin
3.6.0.1398
2.1.2、扫描并提交
- 执行扫描命令
进入项目根目录 cd sonardemo,执行下面命令
mvn sonar:sonar -Dsonar.projectKey=com-luck-framesimple -Dsonar.host.url=http://10.10.10.144:9000 -Dsonar.login=39c67d30e2dae9181cc3160fbdb7b578d09f89c1
注意事项:
Dsonar.host.url:SonarQube访问地址
Dsonar.login:SonarQube生成的令牌
2.1.3、查看扫描结果
- 扫描完成访问 http://10.10.10.144:9000 查看扫描结果
- 点击项目名字可以查看扫描详情
2.2、SonarScanner扫描并提交到SonarQube
2.2.1、下载 SonarScanner
- Sonar-scanner 工具是对源码进行扫描,并将结果保存到数据库以便用上面的sonarqube进行分析
- 下载地址:https://docs.sonarqube.org/latest/analyzing-source-code/scanners/sonarscanner/
- 解压到某个目录
解压目录为:D:\BaiduNetdiskDownload\sonar-scanner-4.8.0.2856-windows
2.2.2、配置SonarScanner环境变量
配置 SonarScanner 文件的 bin 目录地址,配置到环境变量中
配置完成后,在控制台验证,使用命令 sonar-scanner -h
2.2.3、配置SonarScanner文件
进入
sonar-scanner-4.8.0.2856-windows\conf目录,打开 sonar-scanner.properties 文件,修改 sonar.host.url信息
2.2.4、创建项目扫描配置文件
扫描项目前,需要在项目根目录创建扫描文件 sonar-project.properties
sonar.projectKey=com-luck-framesimple-parent
sonar.projectName=com-luck-framesimple-parent
sonar.projectVersion=1.0
# sources code path
sonar.sources=.
# binaries code path
sonar.java.binaries=.
#sonar.java.binaries=src
#sonar.sources=src
#sonar.exclusions=**/test/**,**/target/**,*.xml
sonar.java.source=1.8
sonar.java.target=1.8
#sonar.libraries=module2/lib
sonar.language=java
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
sonar.scm.disabled=true
参数说明:
2.2.5、扫描并提交
- 执行扫描命令
创建配置文件后,可以在目录中打开控制台,输入命令 sonar-scanner -Dsonar.login=myAuthenticationToken
sonar-scanner -Dsonar.login=39c67d30e2dae9181cc3160fbdb7b578d09f89c1
2.2.6、查看扫描结果
- 扫描完成访问 http://10.10.10.144:9000 查看扫描结果
- 点击项目名字可以查看扫描详情
三、扫描报表介绍
四、注意事项
- SonarQube Unsupported JDBC driver provider: mysql
SonarQube 7.9以上版本已不再支持MySQL数据库。 - SonarQube启动报错:WrapperSimpleApp: Encountered an error running main: java.nio.file.AccessDeniedExcepti
删除sonarqube temp目录下的所有文件即可。