【问题标题】:SonarQube not analysing C++ Code with warning File is not under the project directorySonarQube 未分析 C++ 代码并显示警告文件不在项目目录下
【发布时间】:2016-08-01 19:51:32
【问题描述】:

我在使用 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]

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

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

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

我的系统:

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

最好的问候

阿奇

【问题讨论】:

    标签: c++ .net jenkins sonarqube cppcheck


    【解决方案1】:

    我目前正在开发一个用于导入 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 属性指定源文件的路径。

    【讨论】:

    • 同意,也面临这个问题...!
    • 使用 SonarQube Scanner 而不是 MSBuild.SonarQube.Runner 就可以了。非常感谢您的帮助。
    猜你喜欢
    • 2021-03-09
    • 2016-02-02
    • 1970-01-01
    • 2016-04-08
    • 2018-09-30
    • 2018-05-12
    • 1970-01-01
    • 2020-05-10
    • 2019-12-07
    相关资源
    最近更新 更多