SonarQube 不分析 C++ 代码并警告文件不在项目目录下
SonarQube not analysing C++ Code with warning File is not under the project directory
我在使用 Jenkins、SonarQube 和 cppcheck 分析包含 C# 和 Cpp 项目的解决方案时遇到了问题。 C# 代码的分析工作完全正常,所有结果(问题、代码覆盖率等)都显示在 Sonar 中。
使用 cppcheck 对 C++ 代码的分析工作正常 - 结果通过 Cppcheck 在 Jenkins 中显示 插件但在声纳中没有输出(在声纳项目中甚至没有激活 cpp 的质量配置文件 - 有效 在我为测试目的而设置的测试项目中自动执行。
jenkins 中的控制台输出为每个 .cpp、.h、.vcxproj 文件提供以下警告:
WARNING: File is not under the project directory and cannot currently be analysed by SonarQube. File [filepath]
这些文件肯定位于这些警告后列出的文件路径中,并且它们在分析过程中(没有 copying/moving 构建作业中的文件数)。
我已经读过这个
我希望有人知道这里出了什么问题 - 我不知道为什么声纳不想显示我的 cppcheck-results。
我的系统:
- 詹金斯 2.15 版
- Jenkins Cppcheck 插件 1.21 版
- SonarQube 5.6 版
- SonarQube C++(社区)插件 v.0.9.6
- cppcheck v. 1.74(cppcheck 结果以 XML 版本 2 格式编写)
此致
阿基
我目前正在开发一个用于导入PVS-Studio静态分析结果的SonarQube插件,我遇到了同样的问题。您提到的消息是由 MSBuild.SonarQube.Runner 生成的,意味着正在分析的源文件在目录树中的位置高于 .vcxproj 文件,例如:
sourceFile.cpp
projectDirectory
|
---project.vcxproj
据我了解,MSBuild.SonarQube.Runner假定所有源文件都应该位于.vcxproj文件所在的目录下,并忽略所有不满足此条件的文件。
由于无法改变 MSBuild.SonarQube.Runner 确定项目基目录的方式,您仍然需要分析那些跳过的文件,我建议您使用默认的 SonarQube 扫描仪,创建 sonar-project.properties 配置文件,如下所述:SonarQube Scanner,并使用 sonar.sources 属性 指定源文件的路径。