




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自动化代码质量管理Sonar+cppCheck+pcLint1 Sonar简介Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量。通过插件形式,可以支持包括java,C#,C/C+,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测。sonarQube能带来什么?Developers Seven Deadly Sins1. 糟糕的复杂度分布文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。2. 重复显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示源码中重复严重的地方。3. 缺乏单元测试sonar可以很方便地统计并展示单元测试覆盖率。4. 没有代码标准sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写5. 没有足够的或者过多的注释没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷6. 潜在的bugsonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug7. 糟糕的设计(原文Spaghetti Design,意大利面式设计)通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系可以检测自定义的架构规则通过sonar可以管理第三方的jar包可以利用LCOM4检测单个任务规则的应用情况检测耦合通过sonar可以有效检测以上在程序开发过程中的七大问题。2 SonarQube安装社区开源软件的共享、免费特性不可避免的决定了其发布版本存在的、软件契合度上的不友好性。若幻想如windows软件套装一样的傻瓜式安装,将是不切实际的。笔者经过实践,总结了较新的版本安装过程。笔者在windows上搭建Sonar代码质量管理平台,所用的各开源软件版本号、及说明如下:Java开发环境 jdk1.7.0_75Sonarqube/Sonar-Runner/cxx等开源软件都是java语言开发的,jdk或jre是运行这些程序的基础。sonarqube-5.1.2Sonar平台的web接口;管理员或者代码作者等候后可以基于项目查看代码的审查结果。每次运行时,都是主动连接数据库,并监听某个端口(默认是: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-.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,安装过程是一路的nextnext点下去,请注意JDK的安装目录。假定我们已经将JDK安装在了C:Program FilesJavajdk1.7.0_75,紧接着对系统环境变量进行配置:右键”我的电脑”“属性”“高级”选项卡“环境变量”栏:弹出如下窗口在“系统变量(S)”框内找到“Path”变量并选中后,点击下方的“编辑”弹出如下窗口:在“变量值”框内增加java的安装目录:“C:Program FilesJavajdk1.7.0_75bin”,并额外注意字符串前面需要使用分号“;”分割。确定保存后,java运行环境配置完毕。检查java运行环境上述配置完成后重启电脑,进入cmd窗口:“开始”“运行”输入“cmd”点确定后进入DOS控制台,在控制台输入”java -v”,当输出如下图所示的信息时,说明java JDK安装成功,否则请重新检查安装。2. 安装并配置mySql数据库mySql 的window版本安装过程非常简单明了,也是一路的next,next。需要注意的是:mysql安装完毕时,会自动启动配置过程。需要对mysql新增root用户(密码为root)、sonar用户(密码为sonar),且均为管理员用户。监听端口等其他配置项使用默认值即可。如下图开始运行mysql Workbench控制端:Mysql会要求输入用户名和密码,此时输入用户名root、密码root即可,打开如下界面:双击左侧Open Connection to Start Querying处的”Local MYSQL56”,弹出界面数据库查询操作界面,使用SQL语句创建名为sonar的数据库,如下图所示:创建“sonar”数据库的SQL在运行后,可见到左侧出现的sonar数据库(如未出现,请点击刷新图标)。至此MYSQL数据库配置完毕。3. 下载并配置Sonarqube-5.1.2Sonarqube为开源社区的压缩包,无需安装。下面我创建了H:CodeTest目录,用来存放后续安装配置使用到的开源工具包。将sonarqube拷贝到H:CodeTest目录并解压得到目录H:CodeTestsonarqube-5.1.2。配置Sonarqube编辑H:CodeTestsonarqube-5.1.2confwrapper.conf:将第三行的mand使用#号注释掉;新增第四行如下:mand=C:/Program Files/Java/jdk1.7.0_75/bin/java编辑H:CodeTestsonarqube-5.1.2conf perties:将sonar.jdbc.username、sonar.jdbc.password、sonar.jdbc.url三行前的#号注释掉并保存。至此SonarQube配置完毕。验证SonarQube安装成功进入H:CodeTestsonarqube-5.1.2binwindows-x86-32目录运行StartSonar.bat,此时会在DOS窗口下输出信息如下:通过浏览器打开如下地址::9000,如若能够打开如下类似的网页,则说明SonarQube安装配置成功,否则请重新检查。配置质量profile和cxx-plugin插件将cxx-plugin-0.9.4.tar文件拷贝到H:CodeTestsonarqube-5.1.2extensionsplugins内,重启StartSonar.bat后,通过settingSystemUpdate center即可看到名为C+ (Community) cxx的插件已经列出,说明加载插件成功。打开检查规则页面:Rules-Repository:选中“PC-lint c+”和“Cppcheck c+”两个规则类别,可以看到右侧列出了千余条代码审查规则,使用右侧上部的”Bulk Change”将当前选中的规则在默认质量profile内激活。4. 安装并配置sonar-runner-2.4Sonar-runner为开源社区的压缩包,无需安装。将sonar-runner-dist-2.4.zip拷贝到H:CodeTest目录并解压得到目录H:CodeTest sonar-runner-2.4。配置Sonar-runner编辑H:CodeTperties:去掉MySql段sonar.jdbc.url前的#注释符,让sonar-runner能够正确的连接mysql数据库。至此Sonar-runner配置完毕。验证Sonar-runner的运行解压sonar-examples-master.zip到H:CodeTest目录,在DOS命令行下进入到解压生成的目录H:CodeTestsonar-examples-masterprojectslanguagescc-sonar-runner目录内,并以绝对路径运行sonar-runer:运行完毕后显示运行成功:15:59:23.203 INFO - ANALYSIS SUCCESSFUL。如果出错请根据输出的调试或帮助信息进行调整。使用浏览器打开:9000/ 地址后,将能够看到名为SonarQube Scanner的工程已经生产了代码质量审查结果如下(登录名:admin、密码:admin):至此,Sonar代码质量管理平台的搭建基本完成。余下的工作,就是将pcLint、cppCheck等第三方代码审查的工具集成到sonar框架内。5. 安装pcLint9.0Pc-lint的安装无需赘言,使用pc-lint对工程源代码进行lint的过程也不再这儿详述(请查阅相关资料)。需要重点说明的是,pclint默认的输出是文本格式,我们要通过特定的pc-lint规则告诉它按照指定的xml格式输出:在pc-lint的安装目录下,找到名为std.lnt的配置文件,在其中增加如下配置内容(指定pc-lint按照特定的xml格式输出):/ XML options for SONAR.-v / Turn off verbosity(output some verbose file/folds info)-width(0,0) / Dont break long lines+xml(?xml version=1.0 encoding=UTF-8?) / add version information+xml(results) / Turn on XML escapes-format=-format_specific= -hFs1-e900 / Successful completion message confuses ALOA对于pc-lint生成的xml报告复制到源代码的顶级目录。并从H:CodeTestsonar-examples-masterprojectslanguagescc-sonar-runner目录将perties文件拷贝到源代码的顶级目录,修改或增加perties中的配置:# Comma-separated paths to directories with sources (required)sonar.sources=srcsonar.cxx.cppcheck.reportPath=cppcheck-result-1.xmlsonar.cxx.pclint.reportPath=pclint-report.xml#sonar.cxx.cppcheck.reportPath=pclint-report.xmlsonar.cxx.coverage.reportPath=build/gcovr-report*.xmlsonar.cxx.coverage.itReportPath=build/gcovr-report*.xmlsonar.cxx.coverage.overallReportPath=build/gcovr-report*.xml源代码的顶级目录下运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年全球及中国无人直播系统行业头部企业市场占有率及排名调研报告
- 2024-2030全球壁挂式家用储能系统行业调研及趋势分析报告
- 专业音乐制作录音棚日常运营合同
- 2025年家庭护理责任制具体落实方案
- 小产权房共有权合同指南
- 室内设计合同范本大全
- 退休人员解除劳动合同标准范本
- 地下室租赁权转让合同样本
- 技术服务合同到期终止协议书
- 房地产开发项目施工合同补充
- 工业机器人操作与安全防护培训
- 2024年新奥集团股份有限公司招聘笔试参考题库含答案解析
- 人格心理学导论- 课件全套 第1-8章-人格心理学概述-人格研究方法与应用
- 养成好习惯完整版PPT
- 《国歌法》、《国旗法》主题班会
- 修订《科学》(大象版)实验目录表
- 中药材的规范化生产的概况课件
- 首诊负责制度课件
- 知识库构建与应用PPT
- 模具部危险源辨识评价
- 部编版道德与法治四年级下册第四单元《感受家乡文化关心家乡发展》大单元作业设计
评论
0/150
提交评论