好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

代码检测工具箱.doc

16页
  • 卖家[上传人]:人***
  • 文档编号:524419749
  • 上传时间:2022-12-09
  • 文档格式:DOC
  • 文档大小:316KB
  • / 16 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • pmd-cpd代码检测工具箱—checkstyle、findbugs、目录一.目的:3二.取舍:3三.期望结果:3四.步骤:31. 准备工具32. 脚本规划42.1 checkout4脚本编写5执行5问题处理62.2 javac7脚本7执行72.3 jar8脚本86.3 checkstyle8脚本9变量定义9环境初始化脚本10执行10自定义规则102.4 findbugs13脚本13执行132.5 cpd14脚本14执行143. 完整脚本14目的:最近要跟踪一个项目的代码质量,保障项目质量个人总是认为,质量保障这个东西要用数据说话的代码走查是一个方面,但要能使用工具完成部分标准化的代码走查,发现部分错误,也不失为一种不错的补充手段结合之前自己用过、听过的几种开源工具,整合到一起,实现一个适合目前项目的简单工具二.取舍:首先是工具的选择,经过多个工具的使用结合目前项目组成员的水平和状态,决定从几个方面进行检查:常规bug编码规范重复代码不想检查太多,以前没有开展过这方面的工作,领导是否支持,项目成员反响是否良好都很难说,如果大家都喜欢再完善更多的检查也不晚其实还差一个依赖的检测,但现在项目使用的是ssh的架构,现有依赖检查的工具中,对spring的支持都不是很好,遂放弃。

      对于工具的选择,紧着自己熟悉的就选择了checkstyle、findbugs和pmd的cpd工具三.期望结果:使用ant脚本,一步完成所有工作,针对项目直接产生检查报告四.步骤:1. 准备工具ant、checkstyle、findbugs、pmd下载还要下载cvs和eclipse,因为脚本中需要使用cvs更新代码,eclipse会让ant脚本的编辑和环境配置更加简单2. 脚本规划规划脚本,整个脚本分为几个部分,如下:vprojectname="myProject"default="start">整个脚本规划描述了脚本执行的过程,每个注释都将添加具体的内容系统执行任务,这个任务通过依赖调用其他任务,任务间通过依赖定义过程。

      首先“变量定义”中定义变量,便于将来多个项目复用环境初始化”中初始化环境,所有环境清理和环境建立都在这里完成checkout”完成cvs的更新工作由于findbugs需要检查二进制代码,“javac”完成代码编译工作同样为findbugs需要,“jar”将代码打包checkstyle”完成代码拼写检查findbugs”完成bug检查“pmdcpd”使用pmd的cpd功能检查重复代码checkout变量定义和环境初始化部分,在需要时随时添加,首先是checkout过程,将代码检出startcvs库3.1脚本编写checkout部分脚本如下:checkoutlib检出公共库,checkoutsrc检出代码,同时在变量定义部分定义cvsroot变量,如下:vpropertyname="cvsroot"value=":pserver:wangjianxuan:password@:/repository/project"/>其中文字部分与我们常用的cvs写法相同,可以参考eclipse中的cvs视图的部分。

      注意:上面脚本中依赖的mkDir任务是初始化部分的,为了建立相关的目录,后面有详细描述3.2执行eclipse中执行ant就是有这点好,缺少什么不用去修改环境变量,eclipse内部就解决了执行前有几个地方需要确认:脚本上点右键-》RunAs-》AntBuild…11^pECfitEcyaiHiE-"pioJdlr-vulue-^D:/warfr/guj]^p^i^A'EE/y=iuu""pHck<-3i"va.lu«a**9taxA:i&gi^EaM/poGlciagediE"v-al\ae-"(]peo^dlijizcdlr"百i■丄口■云*E-1pai=lc*-3adlr|txuiliidiE"val-je-"fIpactagrfacha=jEB^.^l-Bdix*vva.luv"■Crc■fi&dbdQ-5iiiTRTtilu.e—■5SprajdjEin.dbuQ'H.^ie-rb*vi!!u»""■TPcMxe"7-al'je—nfIpioJdlrSZce^pECfltECyrS.1]/^pECfieECy■^prc^zar&-YZihJIC-zihiie-|±LZ—F二口他闕次1:£卜・/>dir-'Sii-TPddir]"/>0彷亡].亡U亡cileleceCBiEdiix±iz-"41builtMie*/>«-rtertnrriiIrhp-V-rt.vI^ir-nEtMrF,lT£»kziarTe-"cliecX!aurcBEC-depeQdJ-B,arJtCae">cevie,va±,eaE«H5|eviemcJ"泾■亡宜西©首・円$|口urchr-rauhaamhIbLJk.EilarljiwwdhIrcfnlh»"刊丄扌亦鼻^g._UndoRewtFileCij-kzC^pcnDKlardAianF3SwsCiri+S海护In■Cut£&I«XGw<4d*CPisteQuickCCiri+1BhARigihSHAidRjfnBniQ|hFile-酬卿础汁就Fonww:OvitShrfttfRjun愉LineRiinAsDflbugAa*ValidrteOpenJa^adkiEVdzaridL.T-urfiI-CompareWithtfLep^aceWith$£hidcM)flAII-WkiTirrt!>Piadaaancin-.RjSrr^jie右日mCdfiijM匚1/1£価■DowfiDuplkaledCode注意,一定是带有省略号的菜单,这个菜单才能配置环境,打开界面如下图:GrfipuII这里Targets可以选择要执行的任务,执行时会连依赖的任务一起执行。

      ClassPath定义依赖的类库,JRE用来定义JRE的版本,Environment标签很重要,可以定义一些环境变量中未定义的变量,这里我因为一直没有找到cvs路径,但命令行中能够找到cvs,所以把Path环境变量复制定义到这里了,如下图:脚本执行后,会将代码检出到工程目录下的“WorkingArea/Code/project”位置注意:环境变量和类路径等内容的设置在更改ant脚本名称后会丢失,需要重新设置3.3问题处理ant调用cvs网上文章较少,问题的处理就更少了,也许是太简单了吧,但我还是碰到了一些问题首先,如果path路径中没有增加cvs路径,或者你没有安装cvs(windows系统需要安装cvsnt),找不到cvs路径,将报错所以保证命令行中任意路径下调用"cvs”命令可以成功,如果还报错,可以将"path”环境变量增加到eclipse中另外,按照ant的cvs任务说明,cvs密码应该使用cvspass任务生成cvspass文件,在cvs任务中使用cvspass标签调用这个文件但是,我在eclipse中这么做不会产生文件,同时cvscheckout会报告访问被拒绝(很明白,没密码)。

      处理办法就是将密码加在cvsroot属性中,在用户名后,“@”符号前增加“:密码”即可3. javacjavac任务将刚刚检出的代码进行编译,编译后的代码放到bin目录下4.1脚本javac部分的脚本如下:vtargetname="javac"depends="checkoutsrc">vcompilerargvalue="-Xlint:unchecked"/>其中,depends指定刚刚检出脚本,使脚本执行时先执行检出才会执行编译source指定编译时使用的jdk版本,这里指定了1.6版本由于代码编译需要,指定了一个编译参数“-Xlint:unchecked”,根据实际情况,可指定任何参数,可多次使用,与命令行编译对应在变量定义部分定义了两个变量:“srcdir”指定源代码路径;“builddir”指定编译后代码路径脚本如下:vpropertyname="projdir"value="D:/work/quality_workspace/AntScript"/>srcdir和builddir变量共同以当前项目目录为基础,所以,又定义了一个变量“projdir”声明项目目录。

      4.2执行简单执行javac脚本可能会出现问题,需要使classpath包含类路径同样,脚本上右键-》RunAs-》AntBuild…打开窗口中选择Classpath页签,如下:这里要注意,1. 只有选择"UserEntries”节点时,添加jar包的按钮才有效不知道是不是我使用的问题,AddFolders添加目录后,并不能把目录下所有jar包都添加到类路径来,只能将所有jar包摊在这里编译后就是打包了,见下节4. jar与javac同样,由于findbugs的需要,将javac编译后的代码打包5.1脚本脚本destfile指定了编译后的jar包路径和文件名,basedir指定原代码的路径这里在变量定义部分定义了变量pa。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.