SonarQube没有分析带有警告的C ++代码文件不在项目目录下

时间:2016-08-01 08:45:43

标签: c++ .net jenkins sonarqube cppcheck

我在使用Jenkins,SonarQube和cppcheck分析包含C#和Cpp项目的解决方案时遇到了问题。 对C#代码的分析工作总体上很好,所有结果(问题,代码覆盖等)都显示在Sonar中。

使用cppcheck进行C ++代码分析工作正常 - 结果通过Cppcheck在Jenkins中显示 插件但声纳中没有输出(甚至没有cpp的质量配置文件在声纳项目中被激活 - 这有效 我在为测试目的设置的测试项目中自动完成。

jenkins中的控制台输出为每个.cpp,.h,.vcxproj文件提供以下警告:

{{1}}

文件肯定位于这些警告之后列出的文件路径中,并且它们在分析期间(不复制/移动 构建作业中的文件。)

我已经阅读了这个post并确认了 我没有出现"测试"在我的路上。我还确保我要分析的文件不是共享文件。

我希望任何人都有一些想法在这里出错 - 我还没知道为什么声纳不想显示我的cppcheck结果。

我的系统:

  • Jenkins v.2.15
  • Jenkins Cppcheck Plug-in v.1.21
  • SonarQube v.5.6
  • SonarQube C ++(社区)插件v.9.6.6
  • cppcheck v.1.74(cppcheck-results以XML版本2格式编写)

祝你好运

Akki

1 个答案:

答案 0 :(得分: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属性指定源文件的路径。