问题描述
SonarQube服务器7.9.1
SonarQube扫描仪3.2.0.1227
Java 1.8.0_121 Oracle Corporation(64位)
Linux 4.15.0-112通用amd64
我正在使用声纳扫描仪来分析我的源代码。我意识到,对于2个工作副本,我在服务器上得到了不同的结果,并且想知道为什么。我比较了两次运行的扫描仪日志,并在第二个工作副本中检测到此信息:
INFO: SCM provider for this project is: git
以下目录结构应解释工作副本之间的差异,而第二个目录是基本存储库的分支:
└── Work1
├── .git
├── build
| └── config1
├── sonar-project.properties
└── src
└── Work2
├── .git
├── build
| └── config2
| └── .git
├── sonar-project.properties
└── src
我从构建文件夹(Work1/build/config1 $> make sonar -> cd Work1; sonar-scanner-3.2.0.1227-linux/bin/sonar-scanner...
)中开始分析我的第一份工作副本,扫描仪在其中找到sonar-project.properties
。执行分析没有任何问题,报告显示出完美的结果。
从分支开始分析-也从其构建文件夹中-(Work2/build/config2 $> make sonar -> cd Work2; sonar-scanner-3.2.0.1227-linux/bin/sonar-scanner...
)开始,分析不会给人留下任何错的印象。结果存储在服务器上,但报告包含可疑结果。
作为示例,下图显示了一个源文件的区别:
左侧是来自基础存储库(Work1/src/...
)的文件,右侧是相同文件,但来自分支(Work2/src/...
)
我的印象是,由于第二次分析运行日志缺少INFO: SCM provider for this project is: git
,因此无法将Work2/build/config2/.git
分配/关联到从Work2/src
获取的来源。
我的假设正确吗?
我试图明确地设置选项-Dsonar.scm.provider=git -Dsonar.projectBaseDir=Work2/
。 online documentation和here,但没有运气。
如何更改SCM提供程序的基本文件夹?
解决方法
在 sonar-project.properties 文件中添加:
sonar.scm.disabled=true
或使用
-Dsonar.scm.disabled=true
来自 cli