【问题标题】:Sonar 5.0 SCM plugin unable to blame source in git sub-modules causing analysis failureSonar 5.0 SCM 插件无法在 git 子模块中归咎源导致分析失败
【发布时间】:2015-04-07 22:53:26
【问题描述】:

我有 C++ 项目,子模块中有源代码库,并且正在使用 Sonar 商业 C++ 插件。我想分析所有来源。

父项目需要访问子模块中的一些头文件(和编译的库),因此通过使用子模块,我可以很容易地固定(并因此编译)正确的库版本。

例如 ./main.c 包含#include sub/someinclude.h

其中 sub 是包含 git 子模块的目录

在启用 SCM 的情况下使用声纳进行分析时,我得到:

INFO: -----------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: -----------------------------------------------------------------------
Total time: 2:17.478s
Final Memory: 27M/617M
INFO: -----------------------------------------------------------------------
ERROR: Error during Sonar runner execution
ERROR: Unable to execute Sonar
ERROR: Caused by: Unable to blame file sub/someinclude.h. No blame info at line 1. Is file commited?

Sonar 似乎无法执行 git blame 可能是因为它尝试引用 projectBaseDir 而不是当前文件目录,并且 someinclude.h 不在父 git repo 中。

我已经尝试了几个放置在父模块和子模块甚至外部的多项目声纳属性文件配置,但找不到一个有效的。

这看起来像一个正常的用例,所以任何人都可以提出解决方案,或者这是需要修复的错误/限制吗?

【问题讨论】:

  • 您找到解决方案了吗?我也面临同样的问题。

标签: git version-control sonarqube


【解决方案1】:

我也遇到了同样的问题;没有责备信息,因为文件可能没有被跟踪。

如果您运行“git status”,sub/someinclude.h 是否未提交?提交或尝试将其添加到 .gitignore。在我的情况下,我刚刚提交了文件,Sonarqube 工作了。

【讨论】:

  • 我认为你的答案的解释是there
猜你喜欢
  • 2014-12-29
  • 2015-09-04
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 2012-09-14
  • 1970-01-01
相关资源
最近更新 更多