SonarQube无法从Jenkins项目获得git blame信息

时间:2016-06-01 14:30:06

标签: git jenkins sonarqube sonarqube-5.5

我配置了一个Jenkins主项目P来管理两个git存储库AB。这个主项目P只更新git源并调用来自工作区的源的声纳分析。

这是我的树文件夹。

{Jenkins Install Path} \ workspace \ P 
                                     |-- A 
                                         |-- .git/
                                         |-- all projects A files
                                     |-- B
                                         |-- .git/
                                         |-- all projects B files

当Jenkins对P进行声纳分析时,我收到以下错误

SCM provider for this project is: git
2664 files to be analyzed
0/2664 files analyzed
Missing blame information for the following files:
(all files)

错误是合乎逻辑的,因为SonarQube正在.git下寻找{Jenkins Install Path} \ workspace \ P文件夹。它不存在。

我环顾网络寻找解决方案,但我没有找到答案。我在Windows上安装了SonarQube 5.5。

您有什么想法让SonarQube使用我的配置吗?

这种情况与Sonarqube: Missing blame information for the following files不同,因为根本原因是我通过单个SonarQube分析使用两个git文件夹获取。

我多次访问和阅读的来源

SonarQube Git Plugin

Seems similar but different issue

Global SCM error in SonarQube

2 个答案:

答案 0 :(得分:2)

您可以设置由P触发的分析作业。

分析作业可以使用一个参数来分析P工作空间内的存储库。作业本身应使用与P相同的工作区,并仅调用SonarQube分析。

答案 1 :(得分:0)

根据@ CSchulz的回答,我找到了使用SonarQube module

的解决方案

我将SonarQube配置为使用与我的AB git项目相对应的两个子模块。每个项目都将git模块的名称作为重要的projectBaseDir参数。

sonar.projectKey=P
sonar.projectName=P
sonar.projectVersion=4.0.0
sonar.binaries=.

sonar.cxx.includeDirectories=Common/Path
sonar.cxx.cppcheck.reportPath=cppCheckReport.xml # Reports are present in A and B forlder

#  2 modules definition
sonar.modules=A,B

# Module A
IHM.sonar.projectBaseDir=A
IHM.sonar.projectName=A
IHM.sonar.sources=.
IHM.sonar.cxx.includeDirectories=XXX

# Module B
Shares.sonar.projectBaseDir=B
Shares.sonar.projectName=B
Shares.sonar.sources=.
Shares.sonar.cxx.includeDirectories=XXX

我需要弄清楚一些配置,但它有效,对我来说很好。