检查代码质量的插件Findbugs使用说明

article/2025/9/13 16:02:35

一、简介
Findbugs是一个静态分析工具,它检查类或者jar文件,将字节码与一组缺陷模式进行对比以发现可能的问题。利用这个工具可以在不实际运行程序的情况下对软件进行分析。可以帮助改进代码质量。Findbugs提供了方便操作的可视化界面,同时也可以作为eclipse的一个插件来使用,而我们是用的最多的还是作为eclipse插件来使用。

二、使用方法
1、Findbugs的常用操作:
Findbugs找出的bug有三种颜色

黑色的臭虫标志是分类;
红色的臭虫标志表示严重bug,发现后必须修改代码;
橘黄色的臭虫标志表示潜在警告性bug,应尽量修改;

2、Findbugs的使用方法
Findbugs可以通过三种方法是用:Ant,swing操作界面,eclipse。
2.1 Ant
Ant是一个很好的Java自动执行工具。Findbugs官方提供了Ant的findbugs操作方法,我们可以通过这样一个build.xml文件来使用findbugs。

<project name="项目名" default="all">
<property name="findbugs.home" value="findbugs解压路径" /><path id="findbugs.path"><fileset dir="findbugs解压路径"><include name="**/*.jar" /></fileset></path><taskdef name="findbugs"classname="edu.umd.cs.findbugs.anttask.FindBugsTask"classpathref="findbugs.path" /><!--  定义findbugs的home,findbugs的task要使用  --><target name="findbugs"><findbugs home="${findbugs.home}"output="xml:withMessages" outputFile="生成的文件"><!--  以上定义findbugs查找的类路径  --><auxClasspath path="${findbugs.home}/lib/findbugs-ant.jar" /><auxClasspath><fileset dir="lib"includes="*.jar" /></auxClasspath><sourcePath path="源文件路径" /><class location="生成类路径" /></findbugs></target></project>

 

比如:我这里有一个项目的findbugs的ant操作的build文件:

<project name="Calendar" default="all">
<property name="findbugs.home" value="../../findbugs-1.3.8" /><path id="findbugs.path"><fileset dir="../../findbugs-1.3.8"><include name="**/*.jar" /></fileset></path><taskdef name="findbugs"classname="edu.umd.cs.findbugs.anttask.FindBugsTask"classpathref="findbugs.path" /><!--  定义findbugs的home,findbugs的task要使用  --><target name="findbugs"><mkdir dir="target/findbugs"/><findbugs home="${findbugs.home}"output="xml:withMessages" outputFile="target/findbugs/calendar-fb.xml"><!--  以上定义findbugs查找的类路径  --><auxClasspath path="${findbugs.home}/lib/findbugs-ant.jar" /><auxClasspath><fileset dir="lib"includes="*.jar" /></auxClasspath><sourcePath path="src" /><class location="target/classes" /></findbugs></target></project>

 

设置好Ant的环境后,在命令中使用ant -f build.xml,或者在Eclipse直接运行build.xml文件,运行后生成了一个xml文件,如果你想用Html的格式查看findbugs的结果,可以把output属性设为:html。这样就可以通过Html来查看findbugs的结果了。

2.2 swing工具
Ant操作是专家级的操作,一般对于Java不是很熟悉的人,写build.xml文件。比起Ant来,使用Findbugs提供的Swing工具会使Findbugs的操作更加简单。运行Findbugs解压包中的bin文件夹下的findbugs.bat文件,即可开始进行后续的分析工作。

2.3 eclipse
使用eclipse的findbugs插件将findbugs集成到eclipse中,这也是我们平时工作中最常用的一种方法。

下载findbugs插件,解压之后copy到eclipse的plugin目录中去,然后重启eclipse。打开eclipse->window->Preferences,搜索关键字findbugs,如果能找到配置项,那么表示安装成功,如图:
这里写图片描述

简单使用:
(1) 在eclipse package Explorer 右键选择目标工程-> build project
这里写图片描述

(2) 选择指定的包或者类进行findbug
这里写图片描述

此时 遍历指定的包或者类进行分析,找出代码bug,然后集中显示在findbugs的bugs explorer中。下面,我们添加bugs explorer。
(3) 添加findbugs explorer (eclipse 左下角)
这里写图片描述
这里写图片描述

这里写图片描述
(4) bugs explorer 添加完毕后,我们就可以查看刚刚找到的bugs了,如图:
这里写图片描述

 

双击bug项目就可以在右边编辑窗口自动打开相关代码文件并连接到代码片段。 点击行号旁边的小臭虫图标后再eclipse下方输出区将提供详细的bug描述,以及修改建议等信息。我们可以根据此信息进行修改。

tips1:每次使用Findbugs,文件夹上右键→Findbugs→Findbugs,命令时,如果改动了代码,需要先BuildProject;
tips2:修改完bug之后,在文件上右键→Findbugs→Clear Bug Marker清除Findbugs的标志。

3、配置Findbugs
你可以对Findbugs的规则进行详细设置:
3.1 Run Automatically开关
  当此项选中后,FindBugs将会在你修改Java类时自动运行,如你设置了Eclipse自动编译开关后,当你修改完Java文件保存,FindBugs就会运行,并将相应的信息显示出来。
当此项没有选中,你只能每次在需要的时候自己去运行FindBugs来检查你的代码。
3.2 Detector Configuration选择项
在这里你可以选择所要进行检查的相关的Bug Pattern条目,你可以根据需要选择或去掉相应的 检查条件。
3.3 Minimum priority to report选择项
这个选择项是让你选择哪个级别的信息进行显示,有Low、Medium、High三个选择项可以选择,很类似于Log4J的级别设置啦。 比如:
你选择了High选择项,那么只有是High级别的提示信息才会被显示。
你选择了Medium选择项,那么只有是Medium和High级别的提示信息才会被显示。
你选择了Low选择项,那么所有级别的提示信息都会被显示。
3.4 Report bug categories选择项
在这里是一些显示Bug分类的选择:
Malicious code vulnerability关于恶意破坏代码相关方面的
Correctness关于代码正确性相关方面的
Internationalization关于代码国际化相关方面的
Performance关于代码性能相关方面的
Multithreaded correctness关于代码多线程正确性相关方面的
另外FindBugs有UI页面,可以单独运行。也可以通过Ant以及命令行方式运行。


http://chatgpt.dhexx.cn/article/IkMqlfIF.shtml

相关文章

Findbugs的使用

转载请注明出处&#xff1a;http://blog.csdn.net/feibendexiaoma/article/details/72821781前言 Findbugs很多人都并不陌生&#xff0c;Eclipse中有插件可以帮助查找代码中隐藏的bug&#xff0c;IDEA中也有这款插件。这个插件可以帮助我们查找隐藏的bug,比较重要的功能就是查找…

android studio findbugs 过滤,Android Studio中使用FindBugs

1.什么是FindBugs 一句话简单理解就是&#xff1a;是一个工具&#xff0c;可以用它自动帮你找出代码中潜在的BUG。当然事实并不一定总是如此&#xff0c;也有很多它找不出来的地方。下面将直接介绍如何在Android Studio中的简单使用。有兴趣的童鞋可以自己去了解了解&#xff0…

FindBugs插件

官网 FindBugs官网&#xff1a;http://findbugs.sourceforge.net/ 插件安装 点击settings---->plugins---->Browse repositories 搜索框输入FindBugs-IDEA并点击右侧Install按钮 安装完毕后重启idea&#xff0c;发现左下角多了一个FindBugs图标 插件使用 在被检查文…

eclipse常用插件之FindBugs

1、简介 FindBugs 是由马里兰大学提供的一款开源 Java静态代码分析工具。FindBugs通过检查类文件或 JAR文件&#xff0c;将字节码与一组缺陷模式进行对比从而发现代码缺陷&#xff0c;完成静态代码分析。FindBugs既提供可视化 UI 界面&#xff0c;同时也可以作为 Eclipse插件使…

php findbugs,findBugs插件

现在使用Java进行开发的软件已经很多了&#xff0c;那么我们在使用Java开发的时候&#xff0c;是不是会遇到各种各样的错误了&#xff0c;有的错误隐藏着&#xff0c;有的错误你发现了&#xff0c;可以修改&#xff0c;那没有发现的错误就令人担忧了&#xff01;小编这款插件就…

软件测试实验 FindBugs

1.配置 FindBugs 打开 Eclipse&#xff0c;通过【Window -> Preferences】下【Java -> FindBugs】查看 FindBugs的 配置情况。问题: 这里可以配置 FindBugs的哪些特性&#xff1f; 选择导入的项目&#xff0c;通过【Window -> Preferences】下【Java -> FindBugs…

Findbug使用指南

Findbug使用指南 findbugs是一个开源的eclipse 代码检查工具&#xff1b;它可以简单高效全面地帮助我们发现程序代码中存在的bug&#xff0c;bad smell&#xff0c;以及潜在隐患。针对各种问题&#xff0c;它并且提供了简单的修改意见供我们重构时进行参考&#xff1b; 通过使…

findbugs用法教程

代码分析工具FindBugs详细配置使用教程 一&#xff0c;关于FindBugs (1) FindBugs 是由马里兰大学提供的一款开源 Java 静态代码分析工具&#xff0c;它检查类或者 JAR 文件&#xff0c;将字节码与一组缺陷模式进行对比以发现可能的问题(先对编译后的class进行扫描&#xff0c;…

自动找Bug/插件-代码静态检查findbugs-idea安装以及使用

目录 简介 IDEA安装FindBugs Findbugs配置 配置排除一些类 扫描级别 IDEA中使用FindBugs: 一些常见错误 补充 简介 Findbugs是一个静态分析工具&#xff0c;它检查类或者JAR 文件&#xff0c;将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs自带检测器&…

Elasticsearch安装IK分词器、配置自定义分词词库

一、分词简介1、单字分词&#xff1a;2、二分法分词&#xff1a;3、词库分词&#xff1a; 二、配置IK中文分词器三、配置自定义分词拓展词库 一、分词简介 在Elasticsearch中&#xff0c;假设搜索条件是“华为手机平板电脑”&#xff0c;要求是只要满足了其中任意一个词语组合…

Elasticsearch 英文分词 中文分词

对于倒排索引来说&#xff0c;很重要的一件事情就是需要对文本进行分词&#xff0c;经过分词可以获取情感、词性、质性、词频等等的数据。 Elasticsearch 分词工作原理 在 Elasticsearch 中进行行分词的需要经过分析器的3个模块&#xff0c;字符过滤器将文本进行替换或者删除&…

【ElasticSearch】分词器(ElasticSearchIK分词器)

1. 分词器介绍 •IKAnalyzer 是一个开源的&#xff0c;基于java语言开发的轻量级的中文分词工具包•是一个基于Maven构建的项目•具有60万字/秒的高速处理能力•支持用户词典扩展定义 2. ik 分词器安装 IK 分词器安装 3. 分词器的使用 IK分词器有两种分词模式&#xff1a;ik…

ElasticSearch中文分词,看这一篇就够了

写在前面&#xff1a;我是「且听风吟」&#xff0c;目前是某上市游戏公司的大数据开发工程师&#xff0c;热爱大数据开源技术&#xff0c;喜欢分享自己的所学所悟&#xff0c;现阶段正在从头梳理大数据体系的知识&#xff0c;以后将会把时间重点放在Spark和Flink上面。 如果你…

Ik分词器(自定义分词-mysql)

引言&#xff1a;ik分词器的分词范围不够广泛。某些特定行业的专业用语分词能力就不够了&#xff0c;此时就需要自定义分词&#xff0c;与停顿词。 1、下载ik分词器源码 git地址&#xff1a;https://github.com/medcl/elasticsearch-analysis-ik/releases?page2 下载对应的…

分词器详解

在全文搜索&#xff08;Fulltext Search&#xff09;中&#xff0c;**词&#xff08;Term&#xff09;**是一个搜索单元&#xff0c;表示文本中的一个词&#xff0c;**标记&#xff08;Token&#xff09;**表示在文本字段中出现的词&#xff0c;由词的文本、在原始文本中的开始…

ES-分词器

简介 分词器是es中的一个组件&#xff0c;通俗意义上理解&#xff0c;就是将一段文本按照一定的逻辑&#xff0c;分析成多个词语&#xff0c;同时对这些词语进行常规化的一种工具&#xff1b;ES会将text格式的字段按照分词器进行分词&#xff0c;并编排成倒排索引&#xff0c;…

IK分词器

IK分词器是ES的一个插件&#xff0c;主要用于把一段中文或者英文的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词器是将每个字看成一个词,比如"我爱技术"会被分为"我…

Elasticsearch连续剧之分词器

目录 一、前言二、默认分词器三、IK分词器1.主要算法2.安装IK分词器2.1 关闭es服务2.2 上传ik分词器到虚拟机2.3 解压2.4 启动ES服务2.5 测试分词器效果2.6 IK分词器词典 四、拼音分词器1.安装2.测试分词效果 五、自定义分词器1.创建自定义分词器2.测试 一、前言 ES文档的数据…

jieba分词

一、jieba简介 jieba库是一款优秀的 Python 第三方中文分词库&#xff0c;jieba 支持三种分词模式&#xff1a;精确模式、全模式和搜索引擎模式&#xff0c;下面是三种模式的特点。 精确模式&#xff1a; 试图将语句最精确的切分&#xff0c;不存在冗余数据&#xff0c;适合做…

NLP-分词综述

NLP-分词综述 一、什么是分词&#xff1f;二、为什么要分词1、将复杂问题转化为数学问题2. 词是⼀个⽐较合适的粒度3. 深度学习时代&#xff0c;部分任务中也可以「分字」 三、中英⽂分词的3个典型区别1.分词⽅式不同&#xff0c;中⽂更难2.英⽂单词有多种形态3.中⽂分词需要考…