用Eclipse自带插件创建自定义findbugs检测器.doc_第1页
用Eclipse自带插件创建自定义findbugs检测器.doc_第2页
用Eclipse自带插件创建自定义findbugs检测器.doc_第3页
用Eclipse自带插件创建自定义findbugs检测器.doc_第4页
用Eclipse自带插件创建自定义findbugs检测器.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用Eclipse自带插件创建findbugs的检测器1.准备工作1.1.为Eclipse安装插件插件1:ByteCode下载地址:http:/andrei.gmxhome.de/eclipse/用法:在Eclipse菜单栏上单击windows-show view-other-Java-Bytecode即可打开Bytecode窗口,方便查看当前文件的字节码,效果如图1所示。图1插件2:Findbugs下载地址:/eclipse用法:在Eclipse菜单栏上单击windows-show view-other-Findbugs-Bug Explorer即可打开Bug Explorer窗口,进入Findbugs浏览状态,效果如图2所示。图21.2.以下操作需要用的软件(可选)为了操作方便,建议使用winRAR用来打开jar文件;使用Notepad+打开xml文件2.创建自己的Findbugs检测器2.1.编写自定义的检测器Detector项目中需要引入Findbugs的jar文件:findbugs.jar自定义的检测器需要继承OpcodeStackDetector,重写其sawOpcode方法。下面这个检查器Detector用来查找项目中有没有System.out和System.error情况出现。package edu.umd.cs.findbugs.detect;import org.apache.bcel.classfile.Code;import edu.umd.cs.findbugs.BugInstance;import edu.umd.cs.findbugs.BugReporter;import edu.umd.cs.findbugs.bcel.OpcodeStackDetector;/* * author 判断System.out和System.error这种情况 */public class ForbiddenSystemOutClass extends OpcodeStackDetector BugReporter bugReporter;public ForbiddenSystemOutClass(BugReporter bugReporter) this.bugReporter = bugReporter;/* * visit方法,在每次进入字节码方法的时候调用 在每次进入新方法的时候清空标志位 */Overridepublic void visit(Code obj) super.visit(obj);/* * 每扫描一条字节码就会进入sawOpcode方法 * * param seen 字节码的枚举值 */Overridepublic void sawOpcode(int seen) if (seen = GETSTATIC) if (getClassConstantOperand().equals(java/lang/System)/ get class mapping& (getNameConstantOperand().equals(out) / get static field mapping| getNameConstantOperand().equals(err) BugInstance bug = new BugInstance(this, CHECK_SYSTEMCLASS,NORMAL_PRIORITY).addClassAndMethod(this).addSourceLine(this, getPC();bug.addInt(getPC();bugReporter.reportBug(bug);文件1:自定义检测器ForbiddenSystemOutClass.java接下来找到Eclipse编译的ForbiddenSystemOutClass.class文件,一般在项目的lib目录里可以找到。将其放入findbugs-plugin.jar文件中对应的目录下。2.2.修改findbugs.xml文件找到Eclipse插件安装文件夹中findbugs-plugin.jar所在的文件夹,我的文件夹是F:eclipsepluginsedu.umd.cs.findbugs.plugin.eclipse_0111221双击打开findbugs-plugin.jar文件,找到其中的findbugs.xml和messages.xml两个文件,如图3所示。双击打开findbugs.xml,你可以修改原有的文件,也可以替换原有的文件为自己写的findbugs.xml。图3主要有两点:1.BugPattern 注意Experimental的大小写2.Detector. 文件2:findbugs.xml2.3.修改messages.xml文件主要有三点:1.BugPattern 注意Experimental的大小写2.Detector. 3.BugCode Default FindBugs plugin !CDATAThis plugin contains all of the standard FindBugs detectors. !CDATA Checks for classes used System class. System.out or System.err used checks method.Changes to logger if needed. !CDATAsystem class used. System class used文件3:messages.xml3.运行放置好这三个文件,重启Eclipse,在需要检测的文件上单击右键,选择findbugs,如图4所示。图4 运行findbugs运行效果如图5所示:图4 运行效果参考资料1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论