SonarQube 独立集成
使用 CppDepend 的 SonarQube 插件增强您的 C/C++ 开发
重要:
本文档涉及 完整的C/C++ SonarQube集成,从而无需安装任何用于源代码解析的 SonarQube C++ 插件。如果您使用的是其他 C/C++ SonarQube 插件,并且只想导入 CppDepend 问题,请参阅……的文档 SonarQube Light集成。
要在机器上运行 CppDepend,您必须先激活您的 专业DevOps许可证 或 评估期 在机器上解压 CppDepend 文件后,运行 VisualCppDepend.exe 一次。如果机器已连接到互联网,将进行简短的激活过程。
如果计算机处于离线状态,将提供替代的离线激活程序,必须完成该程序才能使用 SonarQube CppDepend 插件。
CppDepend SonarQube 插件兼容 SonarQube 5.6 及以上版本。
C/C++插件先决条件
- 安装 SonarQube.
- 安装 SonarQube Scanner 或旧的Sonar Runner。
- 将 SonarQube Scanner 或 SonarRunner 的 bin 目录添加到 PATH 环境变量。
插件安装和配置
- 复制 sonar-cxx-cppdepend-standalone-plugin-1.0 从 $CppDependInstallDir$/Integrations/SonarQube 到 $SonarQubeInstallDir$\extensions\plugins 目录并重启SonarQube。
- 默认的 CppDepend 规则会加载到 SonarQube 规则库中。但是,如果您需要自定义这些规则,可以使用位于 SonarQube Administration 选项卡下的 .cdproj 文件路径来定义您自己的自定义规则。

- 您必须以管理员身份登录,并在所需的配置文件中激活 CppDepend 规则。

- 运行Sonar-Scanner
这是 SonarQube文档 关于从命令行参数运行 Sonar-Scanner。
CppDepend项目文件参数是 强制
-D sonar.cpp.cppdepend.projectPath={the path of cdproj}.CppDepend扫描器可执行参数是 强制
-Dsonar.cppdepend.scanner=$CppDependInstallDir/Libs/CppDepend.SonarQubeScanner.exe.在Windows上:
>sonar-scanner -Dsonar.cpp.cppdepend.projectPath={cdproj的路径} -Dsonar.cppdepend.scanner="$CppDependInstallDir/Libs/CppDepend.SonarQubeScanner.exe"在Linux/macOS上:
>sonar-scanner -Dsonar.cpp.cppdepend.projectPath={cdproj的路径} -Dsonar.cppdepend.scanner="$CppDependInstallDir/libs/CppDepend.SonarQubeScanner"不要在路径中使用任何环境变量,如果路径包含空格字符,请用双引号括起来
-D sonar.cpp.cppdepend.projectPath="C:\work with space\project.cdproj"
插件功能
- 多模块分析: 一个 CppDepend 项目可以包含多个 C/C++ 项目。分析之后,CppDepend 不会将所有代码放在同一个 SonarQube 模块中。相反,它会创建一个多模块 SonarQube 项目,将每个项目隔离到单独的模块中,从而使代码导航变得非常容易。

- 问题: CppDepend 默认提供 250 多条规则,您可以轻松地完全自定义。CppDepend 提供了一种强大的方法来 计算技术债务 的问题。CppDepend 的技术债务和问题严重程度会传递给 SonarQube。

- 标准度量: 插件会计算所有标准 SonarQube 指标。

- 代码重复: 重复代码由 SonarQube 内嵌的 CPD 工具检测。

- 覆盖率: 插件从 Cobertura 和 Microsoft Visual Studio XML 结果文件加载覆盖率结果。但是,您必须设置 XML 覆盖率文件所在的路径。


