sonarqube 支持集成到 CI 工具中,如 Jenkins, Azure DevOps server 等,我们以 Jenkins 为例;
sonarqube 可以集成到项目的部署流程中,也可以单独部署,此处因需要,我们使用的是单独部署,不影响项目的部署流程;
在 Jenkins>Manage jenkins>Manage Plugins 中搜索 sonarqube,安装 SonarQube Scanner for Jenkins 插件;
重启 Jenkins 后,在 Manage jenkins>Global Tool Configuration 中配置 Sonarquebe Scanner
在 sonarqube 页面中,点击用户头像,点击我的账号;在新页面中,点击 “安全” table,输入令牌名称,点击生成,生成令牌文件;此令牌文件用于 Jenkins 和 sonarqube 通信的安全验证,且此令牌内容只显示一次,及时保存在其他文本中,避免遗失;
在 Jenkins 中配置 sonarqube server
Manage jenkins>Configure system,新增 sonarqube server 服务;
其中,token 需要使用 secret text 类型的凭据,将 sonarqube 生成的令牌粘贴到 Secret 中;
目标:可自由选择分支,手动选择要分析的项目分支;
创建一个 freestyle 的项目,名称自定义,在项目配置中进行如下配置
1,分支选择配置,如下图
如果没有此选项,需要安装 Git Parameter 插件;
2,配置 git
3,配置 build
#sonar 工程标识,随意输入不重复有代表意义即可
sonar.projectKey=bi_build_sonar
#sonar 工程标识,随意输入不重复有代表意义即可
sonar.projectName=bi_build_sonar
#sonar 工程版本号
sonar.projectVersion=1.0
# 源代码路径,依据需要可在 $WORKSPACE 后加入目标路径,缩小分析范围;
sonar.sources=$WORKSPACE
#class 文件路径,依据需要可在 $WORKSPACE 后加入目标路径,缩小分析范围;
sonar.java.binaries=$WORKSPACE
4,执行
点击 build with parameters,选择分支,点击 build;
分析完成,点击 SonarQube,即可进入 sonarqube 服务中,查看代码分析的结果;