Sonar 5.0 SCM插件无法归咎于git子模块导致分析失败

时间:2015-02-07 23:32:54

标签: git version-control sonarqube

我在子模块中有源代码库的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责备,可能是因为它试图引用projectBaseDir而不是当前文件目录而someinclude.h不在父git repo中。

我已尝试在父级和子模块中放置多个多项目声纳属性文件配置,甚至在外部但无法找到有效的。

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

1 个答案:

答案 0 :(得分:0)

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

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