eclipse-pmd – Eclipse的新PMD插件

我是Eclipse用户。 因此,当我想通过PMD分析代码时,我需要使用“ PMD for Eclipse”插件。 该插件以前非常有错误,在更高版本(当前为4.0.3)中得到了增强。 但是有时候性能确实很差。 尤其是在处理相对较大的代码库并启用“保存后检查代码”选项时。

ecplise-pmd插件

因此,当我意识到那里有一个名为eclipse-pmd的新PMD替代插件时,我非常高兴地对其进行了评估。


安装使用现代的Eclipse Marketplace方法。 您只需要转到“帮助”->“ Eclipse Marketplace…”并搜索“ eclipse-pmd” 。 比点击“安装”并按照说明进行操作。

安装后,我有点困惑,因为我没有找到任何常规设置的配置选项( “窗口”->“首选项” )。 我发现您需要分别为每个项目打开PMD。 这很有意义,因为每个项目可以设置不同的规则。 因此,要打开它,请右键单击项目->“首选项”->“ PMD” (如果不卸载旧的PMD插件,将有两个PMD部分) ->“为此项目启用PMD”->“添加……” 。 现在,您应该选择PMD规则集文件的位置。
挑选规则

与旧的PMD插件不同,eclipse-pmd不会导入规则集。 它直接使用规则集文件。 这非常方便,因为通常您希望将其包含在源代码管理中。 当您从源代码管理系统中对规则集文件进行更改时,无需重新导入即可应用更改(旧PMD插件需要重新导入)。

问题可能出在您(或您的团队)没有现有规则集时。 我建议从完整的规则集开始,并排除您不想使用的规则。 无论如何,您的规则集都会不断发展,因此从最严格的(默认)套牌开始对我来说非常有意义。 不幸的是,eclipse-pmd插件没有提供生成规则集文件的选项。 所以我为PMD 5.1.1创建了完整的规则集(5.1.1是PMD版本而不是插件版本) 。 我必须承认它是在旧PMD插件的帮助下创建的。

您可以看到我确实包含了所有规则类别。 我建议以这种方式指定您的设置,并根据需要明确排除/配置规则。 这是指向PMD网站的链接,该链接说明了如何自定义规则集 。 当PMD版本将更新时,此方法可能很方便。 新规则可以出现在类别中,并且当您列出类别而不是单独列出规则时,它们将自动包含在规则集中。 但是无论如何,更新PMD版本时都必须注意新的规则/类别,因为类别经常随新的PMD版本而变化。

因此,现在我们应该已经配置了rulset并且可以正常工作了。 以下是一些实际规则的屏幕截图:

当您将鼠标悬停在左侧面板上时,警告:

侧面板悬停

当您将鼠标悬停在有问题的代码段上时:

片段悬停

当您对有问题的代码段进行快速修复时:

快速解决

为PMD规则生成抑制警告注释是非常好的功能。 它还提供了一些规则的快速修复。 查看其更改日志站点以获取完整列表。

这些PMD警告有时会与Eclipse本机警告发生冲突,因此有可能使其更加可见。 转到“窗口”->“首选项”->“常规”->“编辑器”->“文本编辑器”-> “注释”,然后找到“ PMD违规”

pmd-highlithing

在这里,您可以配置自己的突出PMD问题的样式。 这是我的:

pmd-issue-highlighted

要浏览此插件的完整功能列表,请查看其更改日志站点。

我错过了旧插件中的一些功能。 例如,我希望快速链接或对该规则进行完整描述。 有时提供的简短描述是不够的。 如果您不确定问题的根源,建议您查看完整的PMD规则说明。 您将学到很多有关Java语言本身或正在使用的库的知识。 在这种情况下,快速链接会很有帮助。

我错过的另一个行为是当前文件的PMD违规的完整列表。 另外,某些规则不使用代码突出显示(仅使用侧面板标记)。 有时很难区分编译器和PMD问题。 这对我来说是个问题,因为我们的团队不使用JavaDoc警告,但我使用。 因此,我从队友编写的代码中收到了许多JavaDoc警告。 有时我会错过PMD问题,因为它在JavaDoc警告中丢失了。 (幸运的是,如果我忘记修改某些规则,SVN提交将被拒绝)。

结论

这个插件增强了我的Eclipse工作流程。 由于旧插件无休止的“检查代码……”处理,因此不再产生中断。

翻译自: https://www.javacodegeeks.com/2014/08/eclipse-pmd-new-pmd-plugin-for-eclipse.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值