




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、几种工具的对比工具目的检查项FindBugs检查.class基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug主要检查bytecode中的bug patterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(=,而不是equals)等PMD检查源文件检查Java源文件中的潜在问题主要包括:空try/catch/finally/switch语句块未使用的局部变量、参数和private方法空if/while语句过于复杂的表达式,如不必要的if语句等复杂类CheckStyle检查源文件主要关注格式检查Java源文件是否与代码规范相
2、符主要包括:Javadoc注释命名规范多余没用的ImportsSize度量,如过长的方法缺少必要的空格Whitespace重复代码FindBugsFindBugs 大多数提示有用,值得改1. 配置无查找功能,不过缩写能让我们很快找到某个规则2. 提供图形界面的独立程序,对jar进行检测,有报告生成,非常方便3. 很多功能插件没有实现,可独立使用FindBugs,但没法同时修改源码插件bug替代法: 使用独立的FindBugs设置规则,然后到C:Documents and SettingsXXX下找.Findbugs_prefs,
3、然后改名覆盖Eclipse Project下的.fbprefs (先关闭你的Project)PMD比较严格1. 独立的程序是命令行形式操作2. 插件可以配置规则,有独立显示问题的视图,也很方便3. 一般来说,需要自定义规则才通过检验过于严格1. 按照Sun的规范太严格了,需要自定义规则2. 插件自定义规则没有查找功能,查找规则麻烦3. 只能做检查,不能修改代码,可配合Jalopy使用修改代码 可参考以下文档进行学习使用:CheckStyle过于严格1. &
4、#160;按照Sun的规范太严格了,需要自定义规则2. 插件自定义规则没有查找功能,查找规则麻烦3. 只能做检查,不能修改代码,可配合Jalopy使用修改代码 参考: 工具的插件安装PMDPMD检查原理PMD的核心是JavaCC解析器生成器。PMD结合运用JavaCC和EBNF(扩展巴科斯-诺尔范式,Extended Backus-Naur Formal)语法,再加上JJTree,把Java源代码解析成抽象语法树(AST,Abstract Syntax Tree)。显然,这句话不那么好懂,且看下文具体说明。 从根本上看,Java源代码只是一
5、些普通的文本。不过,为了让解析器承认 这些普通的文本是合法的Java代码,它们必须符合某种特定的结构要求。这种结构可以用一种称为EBNF的句法元语言表示,通常称为“语法” (Grammar)。JavaCC根据语法要求生成解析器,这个解析器就可以用于解析用Java编程语言编写的程序。 不过实际运行 中的PMD还要经过JJTree的一次转换。JJTree是一个JavaCC的插件,通过AST扩充JavaCC生成的解析器。AST是一个Java符号 流之上的语义层。有了JJTree,语法分析的结果不再是“System, ., out, ., . println”之类的符号序列,而是一个由对象构成的树型层
6、次结构。PMD实现过程实现过程:l 首先传一个文件名或者Ruleset给pmdl Pmd把该文件流传给自己生成的javaCC分析器l 分析完毕后,pmd获得了分析生成的AST的一个引用l PMD把AST处理成一个符号表,你可以在符号表里面查询一些有用的信息l 每个pmd规则都会遍历整个AST并检验是否发生了错误l 接着pmd产生一个报表,上面说明了有哪些地方违反了pmd规则使用IDE插件1、settings > plugins, 搜索PMD,选择QAplugin,点击安装。上图中红线框出来的 都需要安装安装完成后,重启IDE插件生效2、Setting->Other Setting-
7、>QAPlugin->Coding Rules可以选择需要的代码检查规范。3、在要检查的工程或者代码上右键,选择 Analyze Code选择要使用的profile和scope窗口查看检查结果使用命令行下载PMD 软件,解压后在bin目录执行如下命令。D:workspacesoftjava-pluginpmdpmd-bin-5.3.2bin>pmd -d D:workspaceprojectmygps -f xml -R rulesets/java/unusedcode.xml自定义PMD规则编写pmd规则有两种方法:l 用java code,需要了解pmd的api,需要进行
8、深入研究,也常常用于一些比较复杂的pmd规则l 用xpath,对着产生的AST树,写就行了,上手比较快,写起来也比较简单CheckStyleCheckstyle的检查原理 sun_checks.xml是由多个module节点构成,因此可以发现:Checkstyle配置是通过指定modules来应用到java文件的。modules是树状结构,以一个名为Checker的module作为root节点,一般的checker都会包括TreeWalker子module。在xml配置文件中通过module的name属性来区分module,module的Properties可以控制如何去执行这个module,
9、每个property都有一个默认值,所有的check都有一个severity属性,用它来指定check的level。TreeWalker为每个java文件创建一个语法树,在节点之间调用submodules的Checks。IDE插件IDE插件安装1、settings > plugins, 搜索CheckStyle-IDEA,点击安装。安装完成后,重启IntelliJ IDEA使插件生效。配置checkstyleFile->Setting->Other Setting->checkStyle至下图界面选中新添加的检查规则,并Apply即可。使用checkStyle检查文件在File->Setting->Editor->CheckStyle中选择是否
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 调度培训考试题及答案
- (正式版)DB15∕T 3358-2024 《绵羊腹腔镜活体采卵技术规程》
- 电厂脱销考试题及答案
- 团队成员任务分配与跟踪管理模板
- 企业法律事务处理与合规管理模板
- 工业用材料进销存管理软件开发协议
- 高科技设备采购与技术支持协议
- 我的老师让我感动记叙文题写作(8篇)
- 音乐鉴赏之古典音乐之美:高中艺术教育教案
- 《五年级数学图形变换与代数方程解法》
- (7.2.2)-7.2啦啦操音乐创编的流程与方法
- GB/T 212-2008煤的工业分析方法
- 冀教版8年级上英语各单元语法课件
- 大班科学《玩转扑克牌》课件
- 高速公路改扩建桥梁拼宽施工技术及质量控制
- 双台110kV主变短路电流计算书
- DB1750-2019水电站(厂)防雷与接地性能测试技术规范
- 牛常见病防治课件
- 危险物品储存安全隐患排查整治表
- 装饰工程保修单
- IInterlib区域图书馆集群管理系统-用户手册
评论
0/150
提交评论