2

我配置了一个 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)

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

我在互联网上四处寻找解决方案,但没有找到答案。我正在使用安装在 Windows 上的 SonarQube 5.5。

你有什么想法让 SonarQube 与我的配置一起工作吗?

这种情况与Sonarqube 不同:缺少以下文件的责备信息,因为根本原因是我通过单个 SonarQube 分析使用两个 git 文件夹获取。

我多次访问和阅读的资源

SonarQube Git 插件

似乎相似但不同的问题

SonarQube 中的全局 SCM 错误

4

2 回答 2

3

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

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

于 2016-06-02T07:17:53.403 回答
1

根据@CSchulz 的回答,我找到了使用SonarQube 模块的解决方案

我将 SonarQube 配置为使用与我的ABgit 项目相对应的两个子模块。每个项目都以 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

我需要弄清楚一些配置,但它可以工作,对我来说很好。

于 2016-06-02T12:01:50.020 回答