我在子模块中有源代码库的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中。
我已尝试在父级和子模块中放置多个多项目声纳属性文件配置,甚至在外部但无法找到有效的。
这看起来像一个正常的用例,所以任何人都可以建议解决方案,或者这是一个需要修复的错误/限制?
答案 0 :(得分:0)
我刚才有同样的问题;没有责备信息,因为文件可能没有被跟踪。
如果您运行" git status",sub / someinclude.h是否未提交?提交它或尝试将其添加到.gitignore。在我的情况下,我刚刚提交了文件并且Sonarqube工作了。