环境:
sonarqube:7.7
mysql:5.7
cppcheck
sonar-scanner-4.6.2472
jdk:1.8
插件sonar-cxx-plugin
原理:
只使用sonar-scanner是无法扫描c++,sonar-cxx插件本身是不会运行任何静态代码分析工具的,cppcheck、Valgrind等,所以需要确保在分析之前生成报告,所以集成每个静态分析工具的思路其实就是先使用工具给你的代码在本地扫一遍,并生成相应的报告(xml等),然后通过sonar-cxx插件使这些报告与sonarqube的代码规则进行匹配并上传到sonarqube上显示出来,供我们查看
步骤:
1.安装mysql jdk,配置相应环境变量
2.下载cppcheck并安装,配置环境变量
3.解压缩sonar-scanner,配置环境变量
4.解压缩sonarqube,并将sonar-cxx-plugin放到extensions/plugins下面
5.配置sonarqube/conf下的sonar.properties,
其中标红的地方为mysql创建的sonarqube的数据库名称
6.配置sonarscanner/conf下的sonar-scanner.properties文件
7.项目扫描的根目录下新增一个sonar-project.properties文件
标红的地方一定要配置,要不然会报错下面错误
8.先运行cppcheck --xml --xml-version=2 --enable=all ./ 2>cppcheck.report.xml,先生成cppcheck.report.x
9.执行sonar-scanner 去执行,然后打开localhost:9000,即可看到扫描结果
最后,如果upload报告报以下错误:
ERROR: Error during SonarQube Scanner execution
ERROR: Failed to upload report - An error has occurred. Please contact your administrator
则去web.log下面看到提示: