背景:公司部分项目是由C++进行开发,因此对此有需求。

sonarqube:docker化安装(alpine系统),版本8.3.1 (build 34397)

jenkins:docker化安装,版本2.222.4

实现步骤:

第一步、sonarqube安装C++扫描插件

该版本无法从sonar平台的应用商店下载,只能通过本地安装。

插件地址:https://github.com/SonarOpenCommunity/sonar-cxx/releases/tag/cxx-1.3.2

SonarQube+Jenkins+Cppcheck实现C++代码扫描-LMLPHP

由于alpine系统关系,当时没有想到版本通过上传方式,因此采用在alpine系统中进行直接下载到指定的sonar插件目录(/extensions/plugins),

cd到/extensions/plugins目录下,然后输入命令:wget https://github.com/SonarOpenCommunity/sonar-cxx/releases/download/cxx-1.3.2/sonar-cxx-plugin-1.3.2.1853.jar

SonarQube+Jenkins+Cppcheck实现C++代码扫描-LMLPHP

下载完后在目录当中会出现刚才下载的插件jar,以免后续出现权限问题,提前输入命令授权:chmod -R 777 sonar-cxx-plugin-1.3.2.1853.jar

SonarQube+Jenkins+Cppcheck实现C++代码扫描-LMLPHP

然后重启sonarqube服务器:

SonarQube+Jenkins+Cppcheck实现C++代码扫描-LMLPHP

重启完即可见到插件已安装成功:

SonarQube+Jenkins+Cppcheck实现C++代码扫描-LMLPHP

第二步、下载安装cppcheck工具

cppcheck要安装在Jenkins服务器上,官方安装文档:http://cppcheck.sourceforge.net/

进入到Jenkins的docker中,输入命令: apt install cppcheck  (先切换到root用户)

SonarQube+Jenkins+Cppcheck实现C++代码扫描-LMLPHP

查询到版本即为安装成功:

SonarQube+Jenkins+Cppcheck实现C++代码扫描-LMLPHP

第三步、sonarqube配置C++的代码扫描规则

首先,创建新规则配置:

SonarQube+Jenkins+Cppcheck实现C++代码扫描-LMLPHP

然后,根据个人选择激活规则到配置当中:SonarQube+Jenkins+Cppcheck实现C++代码扫描-LMLPHP

SonarQube+Jenkins+Cppcheck实现C++代码扫描-LMLPHP

最后,将配置好的规则设置为默认:

SonarQube+Jenkins+Cppcheck实现C++代码扫描-LMLPHP

第四步、Jenkins项目中配置C++的扫描:

在Jenkins中安装Cppcheck插件,然后重启Jenkins,在项目中配置如下:

SonarQube+Jenkins+Cppcheck实现C++代码扫描-LMLPHP

 第五步、在sonarqube中配置报告

SonarQube+Jenkins+Cppcheck实现C++代码扫描-LMLPHP

05-11 22:51