FindBugs、PMD和CheckStyle对比
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源文件是否与代码规范相符 |
主要包括: Javadoc注释 命名规范 多余没用的Imports Size度量,如过长的方法 缺少必要的空格Whitespace 重复代码 |
【注】以上工具支持Eclipse3.3及更高版本,不支持与Leaf集成
2. FindBugs
FindBugs 大多数提示有用,值得改
1. 配置无查找功能,不过缩写能让我们很快找到某个规则
2. 提供图形界面的独立程序,对jar进行检测,有报告生成,非常方便
3. 很多功能插件没有实现,可独立使用FindBugs,但没法同时修改源码
² 插件bug替代法: 使用独立的FindBugs设置规则,然后到C:\Documents and Settings\XXX\下找.Findbugs_prefs,然后改名覆盖Eclipse Project下的.fbprefs (先关闭你的Project)
MyEclipse安装Findbug插件
下载地址:http://sourceforge.net/projects/findbugs/files/
将Findbug的插件包,直接复制到MyEclipse 8.5 的安装目录下面的dropins中,重启MyEclipse
3. PMD
比较严格
1. 独立的程序是命令行形式操作
2. 插件可以配置规则,有独立显示问题的视图,也很方便
3. 一般来说,需要自定义规则才通过检验
3.1 Eclipse在线安装PMD插件
1.打开Help – Software Updates – Find and Install |
2.选择第二项,Next |
3.点击New Remote Site,按图示输入 |
3.2 配置PMD规则
1.Window->Preference->PMD->Rules configuration
2. 点击“clear all”先清空默认的规则,然后点击“Import rule set”,找到allLevel.xml导入,点击“Apply”,“Ok”返回。
3. 选择工程属性,选PMD
4. 选择Enable PMD,就可以启动PMD(可以根据需要选择需要哪些规则)
5. 点击“ok”返回。Eclipse会自动重新编译文件(速度可能非常慢),为了提高编译速度,在工程属性中可以不启用PMD,而是手工启动PMD
6. 在工程属性中,不选择 Enable PMD,在资源浏览器中选择包或者类文件,点击右键,选择PMD,选择Check code with PMD,这样就只检查此包或类文件。
7. 打开PMD视图
Window->Show view->Others…
选择PMD->PMD violations
8. 查看检查结果
PMD violations 视图显示的即为检查结果。allLevel的规则文件只分两级(PMD默认为5级),点击视图右上角中的1,或者2可以查看不同级别的voilations。(按钮按下去表示显示此级别的voilations)
9. CheckStyle
过于严格
1. 按照Sun的规范太严格了,需要自定义规则
2. 插件自定义规则没有查找功能,查找规则麻烦
3. 只能做检查,不能修改代码,可配合Jalopy使用修改代码
安装CheckStyle插件
下载地址:http://sourceforge.net/projects/eclipse-cs/files/Eclipse%20Checkstyle%20Plug-in/。
将checkstyle插件包,直接复制到MyEclipse 8.5 的安装目录下面的dropins中,重启MyEclipse
4. 附录
4.1 三种Eclipse插件安装方式
1. 使用Eclipse的菜单栏 Help -> SoftwareUpdates -> Find and install... -> search for new features... ->输入软件安装地址进行安装
2. 下载插件文件,将其解压缩到Eclipse对应的目录中。重新启动Eclipse,如果插件不能升效,则请将eclipse\configuration\org.eclipse.update目录删除后再启动Eclipse。
3. links文件方式。举例说明
以veloeclipse为例,D:\Jwork\Eclipse为你的Eclipse目录
将插件放置于D:\Jwork\eclipse_plugins\veloeclipse文件夹
新建文件D:\Jwork\eclipse\links\veloeclipse.link
文件内容:path=D:\\Jwork\\eclipse_plugins\\veloeclipse。
重新启动eclipse,安装完成。
推荐第三种安装方式,这样可以把你的eclipse插件放在一个独立的目录统一管理,多个Eclipse均可以指向这个eclipse插件目录。
相关推荐
Origin教程009所需练习数据
内容概要:本文提出了一个新的激活函数dReLU,用于提高大语言模型(LLM)的稀疏激活水平。dReLU可以显著减少模型推理过程中激活的参数数量,从而实现高效的模型推理。通过在Mistral-7B和Mixtral-47B模型上的实验,验证了dReLU的有效性。结果表明,使用dReLU的模型在性能上与原始模型相当甚至更好,同时减少了计算资源的需求,达到了2-5倍的推理加速。 适合人群:对深度学习、大语言模型和模型优化感兴趣的机器学习研究人员和技术开发者。 使用场景及目标:适用于需要高效推理的大语言模型应用场景,特别是资源受限的设备,如移动电话。目标是减少模型的计算资源消耗,提高推理速度。 其他说明:本文详细探讨了dReLU的设计和实验验证,提供了大量的实验数据和对比结果,展示了dReLU在多种任务上的优越表现。
最近参加一个农业机器人的比赛,由于今年的题目是蔬菜幼苗自动搬运,因此搬运部分需要用到一个三轴运动的装置,我们参考了3D打印机的原理,上面通过步进电机控制丝杆和皮带从而带动我们的抓手来抓举幼苗。因为比赛的幼苗和幼苗的基质比较小,这个过程需要精度比较高,查询了一些资料后,我想到了用dma来给STM32单片机的定时器寄存器ARR发送数据来精准控制输出pwm的数量,从而可以精准控制步进电机转动的度数,可以十分方便的计算出到某个位置需要的脉冲。
白色大气风格的商务团队公司模板下载.zip
2023-04-06-项目笔记-第三百五十八阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.356局变量的作用域_356- 2024-12-25
白色大气风格的个人摄影图片博客网站源码下载.zip
白色大气风格的木材加工行业网站模板下载.zip
PCle AI加速卡在智能制造中的应用.docx
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
白色风格的后台管理系统模板下载.rar
内容概要:本文详细介绍了网络热点采集系统的开发过程,包括网页抓取、数据去重、清洗、分类和可视化的各个环节。系统使用 Python 的 requests 和 BeautifulSoup 库抓取指定关键词相关的网页内容,通过集合数据结构去重,利用正则表达式清洗数据,根据关键词匹配进行分类,最后通过 matplotlib 和 wordcloud 库进行数据可视化,展示热点信息。此外,文章还介绍了多线程抓取、数据缓存、异常处理等性能优化方法,以及系统的部署和运行步骤。 适合人群:具有 Python 编程基础的开发人员和技术爱好者。 使用场景及目标:该系统适用于需要实时监控网络热点话题的个人或企业,帮助他们快速了解和分析热点信息的趋势和分布,辅助决策。 阅读建议:在学习本文时,建议读者跟随每一步代码实现,理解各个模块的设计思路和技术细节,并尝试在自己的环境中搭建和运行整个系统,以便更好地掌握网络热点采集系统的开发流程。
白色大气风格的KTV美女麦霸网站模板下载.zip
白色简洁风的博客网站模板下载.zip
梧州市五险一金办事指南
白色简洁风格的餐厅服务团队整站网站源码下载.zip
白色大气风格的境外游景区模板下载.zip
白色大气风格的美食厨师展示模板下载.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
白色大气风格的视察滚动房地产模板下载.zip
【要点】:本文提出LLM-Select方法,利用大型语言模型(LLM)在仅提供输入特征名称和预测任务描述的情况下,实现特征选择,其性能可媲美传统数据科学工具,并具有跨查询机制和提示策略的一致性。 【方法】:通过零样本提示(zero-shot prompt)LLM输出特征的重要性分数,实现特征选择。 【实验】:在真实世界数据集上进行广泛实验,结果表明基于LLM的特征选择在性能上与LASSO等数据驱动方法相当,且无需查看下游训练数据。