我们在使用SONAR的过程中,遇到业务要求一些自定义检查规则。涉及到的语言有C++/JAVA。我把这个经验分享一下。

1 C++

C++运行SONAR检查一般都是通过脚本检查的,在运行SONAR-RUNNER前,通过脚本将违规检查出来,生成一个CPPCHECK检查结果的XML格式文件。

在SONAR数据库中新增配置一条CPPCHECK的检查规则。

通过SONAR-RUNNER即可将该违规信息入库,并在界面上显示出来


2 JAVA

JAVA的办法很多,可以是扩展FINDBUGS,PMD。

FINDBUGS:自己写一个PLUGIN的类,修改配置FINDBUG.XML,MESSAGE.XML文件。将新类打入FINDBUG.JAR。缺点是过程复杂,不能升级FINDBUGS。

PMD:提供XPATH检查规则扩展。首先在PMD里面配置XPATH条件表达式,再在SONAR里面配置规则。有点是不写程序,过程简单。程序升级也能用。