配置前提:部署好了Jenkins、SonarQube。(此处Jenkins、SonarQube是部署在同一台机器上,情况有不一样的请自行修改相关配置)
一、sonar-scanner安装
SonarQube Scanner,作为代码扫描的工具,通过它将项目的代码读取并发送至SonarQube服务器中,才能让SonarQube进行代码分析。
wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-linux.zip
unzip sonar-scanner-cli-3.0.3.778-linux.zip
mv sonar-scanner-3.0.3.778-linux /home/jenkins/sonar-scanner
配置连接Sonarqube
vi /home/jenkins/sonar-scanner/conf/sonar-scanner.properties
sonar.host.url=http://HOST:9000
sonar.sourceEncoding=UTF-8
如上就完成安装了
二、jenkins的集成配置
1、Jenkins安装插件(SonarQube Plugin)
2、配置让jenkins和sonar结合在一起
3、配置SonarQube Scanner
此步骤如无报错则说明正常。
4、创建Jenkins项目,并配置“源码管理”和“构建”
“源码管理”配置(此步有疑问请参考https://www.jianshu.com/p/bc9a1605a68e 的2.1)
“构建”过程配置
sonar.projectKey=test_sonar
sonar.projectName=test_sonar
sonar.projectVersion=1.0
sonar.sources=./
sonar.sourceEncoding=UTF-8
sonar.java.binaries=./
备注:Scanner会自动识别代码语言,所以此处不需要定义开发语言。
到此SonarQube就集成到Jenkins的作业中了,最后只需要将该项目添加到CICD中。
SonarQube一般情况下代码审查过程放置于CI之前,只需要添加到测试环境的流水化作业中即可,没必要集成到开发和正式环境中。而且需要开发人员去制定代码审查规则,否则几乎没什么用,原因是初始化审查规则不符合国情~~~,一检查会发现代码中有无数个严重BUG。代码审查规则制定完毕后,建议将该工具交由测试人员来使用,并驱动开发去优化代码。
下图是我用java开源代码进行一下审查的结果,未定义代码规则。