Sonar+cppCheck+cxxPlugin:实现C++检索
注:配置文件中尽量不要写中文,避免不必要的麻烦。
一、配置清单
openjdk11
sonarqube-7.6(用9.2版,在新增cxx插件后启动报错,遂改用此版本)
SonarQube Scanner 4.2.0.1873
cppcheck-2.6
sonar-cxx-plugin-1.3.2.1853
二、sonarqube服务器安装
sonarqube服务器安装较为简单,只需下载解压后(注意各版本对应的jdk版本),到对应操作系统下执行启动脚本即可启动服务。
官网地址:
https://www.sonarqube.org/downloads/
三、 SonarQube Scanner安装
同sonarqube服务器,下载解压后配置scanner.properties
sonar.host.url=http://localhost:9000
sonar.sourceEncoding=UTF-8
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.jdbc.url=jdbc:mysql:/**********:3306/mydatabase?useUnicode=true&characterEncoding=utf8
配置环境变量:
export PATH=$PATH:/usr/local/sonar-scanner/bin
官网地址:
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/
四、cppcheck安装
下载源码包,解压后进入cppcheck所在目录,进行编译安装
$ make
$ sudo make install
有可能会报错找不到FILESDIR等,可打开目录下的Makefile文件,将其写死:
export FILESDIR=/
export DESTDIR=/
export PREFIX=usr
同样需要配置环境变量
export CPPCHECK_HOME=/home/qiucx/Downloads/cppcheck-2.6
下载地址
http://cppcheck.net
也可用apt源一键安装(没尝试,看官可尝试一下。据说无需编译安装,自动配置环境变量)
sudo apt install cppcheck
五、添加sonar-cxx-plugin
直接下载jar包,放至SonarQube下的/extensions/plugins目录。重启SonarQube服务后能看到c++相关信息。
下载地址
Releases · SonarOpenCommunity/sonar-cxx
六、扫描配置
在需要扫描的项目路径下创建并配置sonar-project.properties文件:
sonar.projectKey=testCpp
sonar.projectName=testCpp
sonar.projectVersion=master
sonar.sources=./
sonar.language=c++
sonar.sourceEncoding=UTF-8
sonar.my.property=value
sonar.java.binaries=target/squash-java-1.0.0-SNAPSHOT.jar
sonar.cxx.cppcheck.reportPath=cppcheck-result.xml
soanr.cxx.includeDirectories=/
注意尽量不要写中文,防止不必要的错误。
执行扫描即可获得结果。
sonar-scanner -Dsonar.projectKey=testCpp -Dsonar.sources=. -Dsonar.host.url=http://localhost:9000 -Dsonar.login=4f054fadd0cc1a0c93aafcff5f90d61122547763
规则
扫描结果