【发布时间】: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