gpt4 book ai didi

c++ - SonarQube 不分析 C++ 代码并警告文件不在项目目录下

转载 作者:搜寻专家 更新时间:2023-10-31 02:15:17 24 4
gpt4 key购买 nike

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

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

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

WARNING: File is not under the project directory and cannot currently be analysed by SonarQube. File [filepath]

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

我已经读过这个 post并确保我的路径中没有出现“测试”。我还确保我要分析的文件不是共享文件。

我希望有人知道这里出了什么问题 - 我不知道为什么 Sonar 不想显示我的 cppcheck-results。

我的系统:

  • Jenkins 诉 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 属性指定源文件的路径。

关于c++ - SonarQube 不分析 C++ 代码并警告文件不在项目目录下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38694496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com