




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,findBugs(静态分析工具),FindBugs简介FindBugs的安装FindBugs的使用自定义FindBugs检测器FindBugs生成html形式的报告整理,FindBugs简介,FindBugs是一个专门分析JAVA代码问题的静态代码扫描工具,它是通过检查java字节码来查找代码缺陷。很多我们写的不好的地方,可以优化的地方,它都能检查出来。Findbugs是一个静态分析工具,它检查类或者JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题。利用这个工具,就可以在不实际运行程序的情况对软件进行分析。它可以帮助改进代码的质量。,FindBugs能做什么,FindBugs可以发现的问题包括:未关闭的数据库连接,缺少必要的nullcheck,多余的nullcheck,多余的if后置条件,相同的条件分支,重复的代码块,错误的使用了=,建议使用StringBuffer代替字符串连加等等。而且我们还可以自己配置检查规则(做哪些检查,不做哪些检查)。Findbugs提供了方便操作的可视化界面,同时也可以作为Eclipse的一个插件来使用,而我们使用得最多的还是作为Eclipse的插件来使用。,FindBugs和其他工具的区别,Checkstyle和PMD是根据样式(style)来改进代码质量的。FindBugs分析引擎它直接操作类文件(class文件)而不是源代码。我们可以通过命令行、各种构建工具(如Ant、CruiseControl、Hudson及Maven等)、独立的SwingGUI或是以Eclipse和NetBeansIDE插件的方式来运行FindBugs。输出结果既可以是XML的,也可以是文本形式的。,FindBugs的安装,Eclipse插件的安装a.在Eclipse当中分别打开一下菜单Help-SoftwareUpdates-FindandInstallb.选择Searchfornewfeaturestoinstall选项然后点击Nextc.新建一个NewRemoteSite.d.输入名称(比如:FindbugsPlug-in)和下面的URL:/eclipsee.开始安装安装好Findbugs以后,选择Windows-ShowView-Other-FindBugs-BugDetails打开BugDetails视图。,包安装:(myeclipse安装findBugs)1、首先从findbugs网站下载插件:,3、修改myeclipse安装目录下configuration/org.eclipse.equinox.simpleconfigurator的文件,在文件最后添加一行:edu.umd.cs.findbugs.plugin.eclipse,0120712,file:/D:/ProgramFiles/Genuitec/Common/plugins/edu.umd.cs.findbugs.plugin.eclipse_0120712,4,false这里file后面的路径要根据自己的目录设置进行修改,要不然重启myeclipse后,仍然找不到findbugs。4、重启myeclipse,选中项目,右键会出现一个FindBugs菜单。至此,findbugs插件安装完毕。,FindBugs的使用,Findbugs可以通过三种方法使用:Ant/Maven工具;通过Ant提供的Swing操作界面;作为Eclipse的一个插件来使用。,Findbugs的Eclipse插件使用,安装了Findbugs插件后。右击点击你要检查的项目选择【FindBugs】-【FindBugs】进行检查。要查看Findbugs检查出了哪些Bug,可以选择Windows菜单-ShowView-BugExplorer,打开BugExplorer面板。如果想要查看某个Bug详细的信息,则可以选择Windows菜单-OpenPerspective,然后选择FindBugs就可以打开FindBugs的Properties面板,在这个面板里面可以看到最详尽的Bugs信息。,FindBugs的配置,选择你的项目,右键=Properties=FindBugs=RunFindBugsAutomatically开关当此项选中后,FindBugs将会在你修改Java类时自动运行,如你设置了Eclipse自动编译开关后,当你修改完Java文件保存,FindBugs就会运行,并将相应的信息显示出来。当此项没有选中,你只能每次在需要的时候自己去运行FindBugs来检查你的代码。,Minimumprioritytoreport选择项这个选择项是让你选择哪个级别的信息进行显示,有Low、Medium、High三个选择项可以选择,很类似于Log4J的级别设置啦。比如:你选择了High选择项,那么只有是High级别的提示信息才会被显示。你选择了Medium选择项,那么只有是Medium和High级别的提示信息才会被显示。你选择了Low选择项,那么所有级别的提示信息都会被显示,Enablebugcategories选择项Correctness关于代码正确性相关方面的;Performance关于代码性能相关方面的;Internationalization关于代码国际化相关方面;Multithreadedcorrectness关于代码多线程正确性相关方面的;Style关于代码样式相关方面的;Maliciouscodevulnerability关于恶意破坏代码相关方面的;,Selectbugpatternstocheckfor选择项在这里你可以选择所要进行检查的相关的BugPattern条目可以从Bugcodes、Detectorname、Detectordescription中看到相应的是要检查哪些方面的内容,你可以根据需要选择或去掉相应的检查条件,自定义FindBugs检测器,编写自定义的检测器Detector项目中需要引入FindBugs的jar文件:findBug.jar自定义的检测器需要继承OpcodeStackDetector重写其sawOpcode方法。下面用一个简单的自定义检测器来说明。此检测器是用来查找项目中有没有system.out和system.error情况出现的。建议编写的时候可以先查看FindBugs源代码以查找类似于你要编写的检测器。,自定义检测器ForbiddenSystemOutClass.java,接下来找到eclipse编译的.class文件,一般在项目的lib目录里面可以找到。将其放入findbugs-plugin.jar文件中对应的目录下:findbugs-plugin.jareduumdcsfindbugsdetect(如图),修改findbugs.xml文件找到Eclipse插件安装文件夹中findbugs-plugin.jar所在的文件夹,我的文件夹是:D:ProgramFilesGenuitecCommonpluginsedu.umd.cs.findbugs.plugin.eclipse_0120712打开findbugs-plugin.jar文件,找到findbugs.xml和messages.xml两个文件。双击打开findbugs.xml,你可以修改原有的文件,也可以替换原有的文件为自己写的findbugs.xml。,findbugs.xml和messages.xml两个文件,findbugs.xml的编写,对于每一个新的检测器,在FindBugs.xml文件中增加一个Detector元素和一个BugPattern元素。Detector元素指定用于实现检测器的类以及它是快速还是慢速检测器。speed属性的可能值有slow、moderate和fast。BugPattern元素指定三个属性。abbrev属性定义检测器的缩写。缩写用于标识用命令行客户运行时检测到的缺陷。可以用同一个缩写将几个相关的检测器组织到一起。.,type属性是惟一标识符,有两个用途。在使用Ant版本或者命令行版本的FindBugs且输出格式设置为XML时,用type属性标识问题。type属性也是在检测器的Java代码中指定的,用以创建缺陷的正确类型。category属性是枚举类型。它是以下类型中的一种:CORRECTNESS:一般正确性问题MT_CORRECTNESS:多线程正确性问题MALICIOUS_CODE:如果公开给恶意代码,有可能成为攻击点PERFORMANCE:性能问题,messages.xml的编写,messages.xml文件由三个元素组成:Detector、BugPattern和BugCodeDetails元素包含检测器的简单HTML描述,因而应当包含在CDATA部分中.BugPattern元素类似于在FindBugs.xml中定义的BugPattern元素。需要type属性,并且它应当匹配在FindBugs.xml和在检测器的Java代码中使用的相同惟一标识符。BugCode元素必须用元素的属性指定这个缩写,运行放置好这三个文件,重启Eclipse,在需要检测的文件上单击右键,选择findbugs即可从检测出带有system.out或system.error语句。,FindBugs生成html形式的报告整理,之前用的是findbugs的eclipse插件,但是在导出报告的时候是xml形式的,很不易阅读,下来讲下用findbugs来导出html的报告。准备工作下载到ant和findbugs。并且配置好它们的环境变量,编写ant脚本(build.xml),build.xml部分属性参数说明,class嵌套元素指定要分析的类。这个元素必须指定一个location属性,location属性的名字为archive文件(jar,zip等)、目录或者class文件。可以为一个findbugs元素指定多个class元素。auxClasspath可选的嵌套元素,用于指定要分析的类所引用的类,但是并不对引用的类进行分析。sourcePath可选的嵌套元素,指定Java源代码的目录。,home必须的属性,findbugs的安装目录。quietErrors可选的布尔型属性。如果是true的话,报告严重的分析错误和丢失的类。默认情况下为false。reportLevel可选的属性。指定优先级别。如果是low的话,那么报告所有的bug,如果是medium(缺省值),报告medium和high优先级的bug。,生成FindbugsReport,运行cmd打开DOS窗口,进入到build.xml所在目录,键入命令antfindbugs回车即可。,可能遇到的问题,由于工程比较大,所以在导出html的过程中有可能产生一个空白的html。此时原因可能是JVM内存的错(堆栈信息之类的)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 唐山2025年唐山市消防救援支队上半年政府专职消防队员招聘113人笔试历年参考题库附带答案详解
- 安徽水利水电职业技术学院《美国文学史》2023-2024学年第二学期期末试卷
- 北京戏曲艺术职业学院《管弦乐队器乐法》2023-2024学年第二学期期末试卷
- 河北经贸大学《德汉笔译》2023-2024学年第二学期期末试卷
- 河北工程大学《历史学科教学论》2023-2024学年第二学期期末试卷
- 重庆航天职业技术学院《社会治理》2023-2024学年第二学期期末试卷
- 贵州交通职业技术学院《自动控制系统》2023-2024学年第二学期期末试卷
- 泉州信息工程学院《高聚物合成实验》2023-2024学年第二学期期末试卷
- 黑龙江艺术职业学院《政府预算与管理》2023-2024学年第二学期期末试卷
- 沧州航空职业学院《物流采购管理》2023-2024学年第二学期期末试卷
- 科技经费管理培训
- ABAQUS官方培训资料PPTlecture1-introducing-abaqus-cae
- 趣味英语课件完整版
- 大学武术智慧树知到答案章节测试2023年浙江大学
- 夯实基础总结反思课件高三学习主题班会
- 前列腺增生症患者围手术期的护理
- 五防系统调试报告
- 日语综合教程第六册 单词表
- 在建项目雨季施工(防汛)安全隐患排查表
- 《广东省普通高中学生档案》模板
- GB/T 7715-2014工业用乙烯
评论
0/150
提交评论