Sonarqube扫描C/C++语言的项目代码
这篇文章主要介绍如使用Sonarqube扫描C/C++的项目代码。
提前说明,本文的方式只能扫描出 代码重复度以及大小、复度等指标。
前提条件:sonar相关服务已就绪,具体搭建流程详见下述文章:
Sonarqube+jenkins+pipeline持续集成
社区版本的SonarQube服务不支持扫描C/C++语言的项目,具体点讲就是没有提供社区版的C/C++扫描插件,所以搞定这个插件基本上就搞定这个扫描工作了。
共分两步:安装c/c++插件、安装Cppcheck
(1).安装c/c++插件
好在有大佬写出了针对于c/c++的扫描插件,详见github地址:
https://github.com/SonarOpenCommunity/sonar-cxx/releases
从上述地址下载对应于SonarQube版本的插件即可,我的sonar服务版本是v7.1,下载的c/c++插件版本是v1.3.0,亲测可用。
下载之后将该插件安装到SonarQube目录下的/extensions/plugins目录下,重启SonarQube服务,这时可在sonar的web页面代码规则目录看到c++相关信息。
(2).安装Cppcheck
光安装上面的插件应该还不能进行有效的扫描工作,需要安装一个Cppcheck工具,下载地址如下:
http://cppcheck.sourceforge.net/
将该插件配置到环境变量
然后在扫描配置项里面做如下配置
sonar.projectKey=项目名称 #sonar平台中相对应项目的key
sonar.projectName=项目名称 #sonar平台中相对应项目的名字
sonar.projectVersion=1.0 #sonar平台中相对应项目的项目版本
sonar.sources=./ #sonar检测的源文件目录,‘.’表示当前根目录下的所有文件目录
sonar.language=c++ #sonar检测的编程语言种类
sonar.sourceEncoding=UTF-8 #sonar平台中相对应项目的编码格式
执行扫描即可获得结果。
总结:本文主要介绍如使用Sonarqube扫描C/C++的项目代码。