代码质量静态分析部署
方案参考:https://plugins.jenkins.io/sonar-gerrit/
方案组合:
GitLab + Gerrit + Jenkins + SonarQube
说明:
在Docker下部署了GitLab、 Gerrit 、 Jenkins 、 SonarQube
理论上支持在现有Gerrit 、 Jenkins部署上添加SonarQube插件实现
Docker
下载Docker Desktop版本:
通过Docker Compose部署GitLab,Gerrit,Jenkins,SonarQube
本文本地部署如下:
GitLab
无针对SonarQube的特殊配置,不做配置说明
Gerrit
无针对SonarQube的特殊配置,不做配置说明
SonarQube
为了测试使用了Docker本地搭建的SonarQube环境,理论上可以使用公司的SonarQube
文档是在Docker搭建的SonarQube,所以访问地址是http://localhost:9000
创建SonarQube Token
这个Token在配置Jenkins时会用到
进入配置界面,把SCM开关打开
Jenkins
版本要求:Jenkins version 1.625.3 or newer is required.
需要下载以下插件:
Gerrit Trigger
没有针对SonarQube的特殊配置,Jenkins和Gerrit可以联动即可
系统管理 -- 系统设置中配置SonarQube servers
其中Server authentication token是SonarQube配置生成的
生成一个Token,填入到Jenkins配置参数中:
创建Jenkins任务时,勾选Prepare SonarQube Scanner environment选项,选择配置的SonarQube token
在构建时的Action添加Execute SonarQube Scanner:
“sonar.projectKey”可随意指定
“sonar.sources”指定了源文件路径
“sonar.java.binaries”是编译后的class文件的路径
在构建后的Action添加PostSonarQube issues as Gerrit Comments:
配置完后查看构建日志:
验证
- JAVA代码中加入:
public int testSonar = 0;
- Git提交修改
- 查看Gerrit提交结果