自动化代码质量管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

自动化代码质量管理Sonar+cppCheck+pcLint1Sonar简介Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量。通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测。sonarQube能带来什么?Developers'SevenDeadlySins1.糟糕的复杂度分布文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。2.重复显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示源码中重复严重的地方。3.缺乏单元测试sonar可以很方便地统计并展示单元测试覆盖率。4.没有代码标准sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写5.没有足够的或者过多的注释没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷6.潜在的bugsonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug7.糟糕的设计(原文SpaghettiDesign,意大利面式设计)通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系可以检测自定义的架构规则通过sonar可以管理第三方的jar包可以利用LCOM4检测单个任务规则的应用情况检测耦合通过sonar可以有效检测以上在程序开发过程中的七大问题。2SonarQube安装社区开源软件的共享、免费特性不可避免的决定了其发布版本存在的、软件契合度上的不友好性。若幻想如windows软件套装一样的傻瓜式安装,将是不切实际的。笔者经过实践,总结了较新的版本安装过程。笔者在windows上搭建Sonar代码质量管理平台,所用的各开源软件版本号、及说明如下:Java开发环境jdk1.7.0_75Sonarqube/Sonar-Runner/cxx等开源软件都是java语言开发的,jdk或jre是运行这些程序的基础。sonarqube-5.1.2Sonar平台的web接口;管理员或者代码作者等候后可以基于项目查看代码的审查结果。每次运行时,都是主动连接数据库,并监听某个端口(默认是127.0.0.1::9000)的http请求。sonar-runner-2.4sonar-examples-master分析代码的重复率、复杂度;从sonarqube获取可用的plugin插件,来解析特定目录下由第三方工具(pclint/cppcheck/vagrand)生成的代码审查、覆盖率统计等xml格式的报告,并存储到数据库,以供sonarqube使用web展示。第三方工具可以从各维度对代码质量进行审查。sonar-examples-master.zip是用来验证sonar能够正确运行的、包含20余种语言的示例代码。mysql-installer-community-5.6.10.1.msi用以支撑sonarqube、sonar-runner运行的大型数据库;Sonarqube自带的h2数据库,效率低、管理的数据表很少,仅能够用于sonar功能演示的目的。PC-LINT_V9.0第三方工具,负责对c/c++代码进行静态检查,有商用和社区两个版本,功能非常强大。Cppcheck-1.71第三方工具,负责对c/c++代码进行静态检查,开源代码,功能比pc-lint弱一些但够用。cxx-plugin-0.9.4.tarPlugin插件,负责解析第三方工具(pclint/cppcheck/vagrand等)针对c/c++语言生成的xml质量报告,并生成可被sonar识别的数据。在了解了上述各个工具软件的用途后,搭建sonar源代码质量管理平台就顺手很多,并且能够迅速定位搭建过程中出现的臭虫。当你更换上述软件为其他版本号时,可能因为兼容性问题而导致安装失败,请额外注意。笔者在安装过程中就遇到了此类问题,抓狂的很久,因而在此分享给大家。1.安装JDK虚拟机环境请下载JDK1.7或1.8,安装过程是一路的nextnext点下去,请注意JDK的安装目录。假定我们已经将JDK安装在了C:\ProgramFiles\Java\jdk1.7.0_75,紧接着对系统环境变量进行配置:右键”我的电脑”“属性”“高级”选项卡“环境变量”栏:弹出如下窗口在“系统变量(S)”框内找到“Path”变量并选中后,点击下方的“编辑”弹出如下窗口:在“变量值”框内增加java的安装目录:“C:\ProgramFiles\Java\jdk1.7.0_75\bin”,并额外注意字符串前面需要使用分号“;”分割。确定保存后,java运行环境配置完毕。检查java运行环境上述配置完成后重启电脑,进入cmd窗口:“开始”“运行”输入“cmd”点确定后进入DOS控制台,在控制台输入”java-v”,当输出如下图所示的信息时,说明javaJDK安装成功,否则请重新检查安装。2.安装并配置mySql数据库mySql的window版本安装过程非常简单明了,也是一路的next,next。需要注意的是:mysql安装完毕时,会自动启动配置过程。需要对mysql新增root用户(密码为root)、sonar用户(密码为sonar),且均为管理员用户。监听端口等其他配置项使用默认值即可。如下图开始运行mysqlWorkbench控制端:Mysql会要求输入用户名和密码,此时输入用户名root、密码root即可,打开如下界面:双击左侧OpenConnectiontoStartQuerying处的”LocalMYSQL56”,弹出界面数据库查询操作界面,使用SQL语句创建名为sonar的数据库,如下图所示:创建“sonar”数据库的SQL在运行后,可见到左侧出现的sonar数据库(如未出现,请点击刷新图标)。至此MYSQL数据库配置完毕。3.下载并配置Sonarqube-5.1.2Sonarqube为开源社区的压缩包,无需安装。下面我创建了H:\CodeTest目录,用来存放后续安装配置使用到的开源工具包。将sonarqube拷贝到H:\CodeTest目录并解压得到目录H:\CodeTest\sonarqube-5.1.2。配置Sonarqube编辑H:\CodeTest\sonarqube-5.1.2\conf\wrapper.conf:将第三行的wrapper.java.command使用#号注释掉;新增第四行如下:wrapper.java.command=C:/ProgramFiles/Java/jdk1.7.0_75/bin/java编辑H:\CodeTest\sonarqube-5.1.2\conf\sonar.properties:将sonar.jdbc.username、sonar.jdbc.password、sonar.jdbc.url三行前的#号注释掉并保存。至此SonarQube配置完毕。验证SonarQube安装成功进入H:\CodeTest\sonarqube-5.1.2\bin\windows-x86-32目录运行StartSonar.bat,此时会在DOS窗口下输出信息如下:通过浏览器打开如下地址:127.0.0.1:9000,如若能够打开如下类似的网页,则说明SonarQube安装配置成功,否则请重新检查。配置质量profile和cxx-plugin插件将cxx-plugin-0.9.4.tar文件拷贝到H:\CodeTest\sonarqube-5.1.2\extensions\plugins内,重启StartSonar.bat后,通过settingSystemUpdatecenter即可看到名为C++(Community)[cxx]的插件已经列出,说明加载插件成功。打开检查规则页面:Rules-Repository:选中“PC-lintc++”和“Cppcheckc++”两个规则类别,可以看到右侧列出了千余条代码审查规则,使用右侧上部的”BulkChange”将当前选中的规则在默认质量profile内激活。4.安装并配置sonar-runner-2.4Sonar-runner为开源社区的压缩包,无需安装。将sonar-runner-dist-2.4.zip拷贝到H:\CodeTest目录并解压得到目录H:\CodeTest\sonar-runner-2.4。配置Sonar-runner编辑H:\CodeTest\sonar-runner-2.4\conf\sonar-runner.properties:去掉MySql段sonar.jdbc.url前的#注释符,让sonar-runner能够正确的连接mysql数据库。至此Sonar-runner配置完毕。验证Sonar-runner的运行解压sonar-examples-master.zip到H:\CodeTest\目录,在DOS命令行下进入到解压生成的目录H:\CodeTest\sonar-examples-master\projects\languages\c\c-sonar-runner目录内,并以绝对路径运行sonar-runer:运行完毕后显示运行成功:15:59:23.203INFO-ANALYSISSUCCESSFUL。如果出错请根据输出的调试或帮助信息进行调整。使用浏览器打开地址后,将能够看到名为SonarQubeScanner的工程已经生产了代码质量审查结果如下(登录名:admin、密码:admin):至此,Sonar代码质量管理平台的搭建基本完成。余下的工作,就是将pcLint、cppCheck等第三方代码审查的工具集成到sonar框架内。5.安装pcLint9.0Pc-lint的安装无需赘言,使用pc-lint对工程源代码进行lint的过程也不再这儿详述(请查阅相关资料)。需要重点说明的是,pclint默认的输出是文本格式,我们要通过特定的pc-lint规则告诉它按照指定的xml格式输出:在pc-lint的安装目录下,找到名为std.lnt的配置文件,在其中增加如下配置内容(指定pc-lint按照特定的xml格式输出)://XMLoptionsforSONAR.-v//Turnoffverbosity(outputsomeverbosefile/foldsinfo)-width(0,0)//Don'tbreaklonglines+xml(?xmlversion=1.0encoding=UTF-8?)//addversioninformation+xml(results)//TurnonXMLescapes-format=issuefile=\q%f\qline=\q%l\qnumber=\q%n\qtype=\q%t\qdesc=\q%m\q/-format_specific=-hFs1-e900//'Successfulcompletionmessage'confusesALOA对于pc-lint生成的xml报告复制到源代码的顶级目录。并从H:\CodeTest\sonar-examples-master\projects\languages\c\c-sonar-runner目录将sonar-project.properties文件拷贝到源代码的顶级目录,修改或增加sonar-project.properties中的配置:#Comma-separatedpathstodirectorieswithsources(required)sonar.sources=srcsonar.cxx.cppcheck.reportPath=cppcheck-resu

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功