我配置了一个Jenkins主项目P
来管理两个git存储库A
和B
。这个主项目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文件夹获取。
我多次访问和阅读的来源
答案 0 :(得分:2)
您可以设置由P
触发的分析作业。
分析作业可以使用一个参数来分析P
工作空间内的存储库。作业本身应使用与P
相同的工作区,并仅调用SonarQube分析。
答案 1 :(得分:0)
根据@ CSchulz的回答,我找到了使用SonarQube module
的解决方案我将SonarQube配置为使用与我的A
和B
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
我需要弄清楚一些配置,但它有效,对我来说很好。