SonarQube社区版如何为master、develop分支生成独立分析报告
方案可行性结论
你设想的实现方式完全可行,不需要修改pom.xml中的groupId、artifactId配置即可实现需求。
SonarQube识别项目唯一性的核心标识是sonar.projectKey参数,该参数和Maven项目的groupId、artifactId没有强制绑定关系,执行扫描时传入的Jenkins配置参数优先级高于pom.xml内的默认配置,只要给两个分支的扫描任务指定互不重复的projectKey和projectName,就会在SonarQube社区版中生成两个完全独立的项目报告。
具体配置操作
你已经配置了分别对应master、develop分支的两个独立Jenkins作业,只需要在两个作业中分别添加sonar-scanner构建步骤,按如下方式填写分析属性即可:
- 对应develop分支的Jenkins作业,在Sonar分析配置的属性输入框中填入:
sonar.projectKey=sonarqube-develop-code sonar.projectName=1.sonarqube-develop-code - 对应master分支的Jenkins作业,在Sonar分析配置的属性输入框中填入:
sonar.projectKey=sonarqube-master-code sonar.projectName=2.sonarqube-master-code
注意事项
- 不要在配置中添加
sonar.branch.name这类多分支功能专属参数,SonarQube社区版不支持该参数,传入后可能导致扫描任务异常。 - 两个独立项目的扫描历史、问题列表、质量门禁结果会完全隔离存储,和付费版多分支功能的差异仅在于两份报告不会归集到同一个父项目下,完全满足分开展示分支代码质量报告的需求。
- 如果需要保持两个分支的代码检查规则一致,可以在SonarQube管理端将两个独立项目绑定到同一个质量配置集。
内容的提问来源于stack exchange,提问作者Gleee97
相关产品推荐
相关产品推荐

