前言:

PMD是一款静态代码分析工具。它能够自己主动检測各种潜在缺陷以及不安全或未优化的代码。

PMD很多其它地是集中在预先检測缺陷上。它提供了高度可配置的丰富规则集,用户能够方便配置对待特定项目使用那些规则。

安装及使用:

1.在Eclipse中 安装 PMD插件执行方式

ECLIPSE菜单 > HELP > Install New Software >

弹出窗体中在 work with中输入 PMD - http://sourceforge.net/projects/pmd/files/pmd-eclipse/update-site/

,单击后面的”添加” > 确认>

会自己主动下载插件,下载须要点时间,>选择安装 subclipse 3 就可以;

2.激活PMD插件。

Ecplise的菜单Project->Properties->PMD。在这个窗体选择要应用的规则。并指定相对重要性,为特定项目具体配置PMD,眼下仅仅须要选中Enable PMD复选框,保留默认规则集。

3.执行PMD。

单击项目资源,右键->PMD->Check code with PMD。在Violation OverView视图中按问题严重程度列出PMD问题。在Violations outLinew右键show Details能够查看更具体的规则描写叙述以及说明规则的演示样例代码。

(PMD可检測一个项目、类、单个文件等等)

4.几种形式的检查结果





右键每条结果,能够进行几个操作

Show Details… :显示明细

Mark as reviewed:(标记为已审查)菜单项。这将向代码加入一个凝视,以指示PMD在这里忽略此问题。



Remove violation:能够手工纠正问题。并使用Remove violation(删除违例)直接从列表中删除此问题

clear violations reviews:清除之前 标记

PMD也能够直接检查一个项目,生成多种格式的报告文件



附录:

PMD附带了很多能够直接使用的规则

潜在的bug:空的try/catch/finally/switch语句

未使用的代码:未使用的局部变量、參数、私有方法等

可选的代码:String/StringBuffer的滥用

复杂的表达式:不必须的if语句、能够使用while循环完毕的for循环

反复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs

循环体创建新对象:尽量不要再for或while循环体内实例化一个新对象

资源关闭:Connect,Result,Statement等使用之后确保关闭掉

此外。还能够自己定义规则。检查Java代码是否符合某些特定的编码规范。

比如,你能够编写一个规则,要求PMD找出全部创建Thread和Socket对象的操作。

也能够依据实际情况更改自带规则的检查内容

PMD自带规则及自己定义规则,有兴趣可自己研究下;

兴许有时间在分享下。

静态代码检查工具-PMD刚開始学习的人入门篇的更多相关文章

  1. 作为刚開始学习的人应该怎样来学习FPGA

    FPGA作为一种高新的技术.已经逐渐普及到了各行各业.不管是消费类.通信类.电子行业都无处不在它的身影,从1985年第一颗FPGA诞生至 今,FPGA已经历了将近20多个年头,从当初的几百个门电路到如 ...

  2. wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  3. wxWidgets刚開始学习的人导引(2)——下载、安装wxWidgets

    wxWidgets刚開始学习的人导引全目录   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxS ...

  4. wxWidgets刚開始学习的人导引(1)——前言

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  5. JavaScript 刚開始学习的人应知的 24 条最佳实践

    原文:24 JavaScript Best Practices for Beginners (注:阅读原文的时候没有注意公布日期,认为不错就翻译了,翻译到 JSON.parse 那一节认为有点不正确路 ...

  6. wxWidgets刚開始学习的人导引(4)——wxWidgets学习资料及利用方法指导

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  7. 【React Native开发】React Native配置执行官方样例-刚開始学习的人的福音(8)

    ),React Native技术交流4群(458982758),请不要反复加群! 欢迎各位大牛,React Native技术爱好者加入交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文 ...

  8. wxWidgets刚開始学习的人导引(6)——wxWidgets学习材料清单

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  9. 刚開始学习的人制作VMOS场效应管小功放

    VMOS场效应管既有电子管的长处又有晶体管的长处,用它制作的功率放大器声音醇厚.甜美,动态范围大.频率响应好.因此近年来在音响设备中得到了广泛应用. 大功率的场效应管功率放大器.电.路比較复杂.制作和 ...

随机推荐

  1. 从零开始--Spring项目整合(1)使用maven框架搭建项目

    这些年一直在用spring的框架搭建项目,现在开始我们从零开始利用Spring框架来搭建项目,目前我能想到有Spring.SpringMVC.SpringJDBC.Mybatis.WebSockt.R ...

  2. 一元多项式的表示及相加(抽象数据类型Polynomial的实现)

    // c2-6.h 抽象数据类型Polynomial的实现(见图2.45) typedef struct // 项的表示,多项式的项作为LinkList的数据元素 { float coef; // 系 ...

  3. 洛谷P3112 [USACO14DEC]后卫马克Guard Mark

    题目描述 Farmer John and his herd are playing frisbee. Bessie throws the frisbee down the field, but it' ...

  4. CSS技巧----DIV+CSS规范命名大全集合

    网页制作中规范使用DIV+CSS命名规则,可以改善优化功效特别是团队合作时候可以提供合作制作效率,具体DIV CSS命名规则CSS命名大全内容篇. 常用DIV+CSS命名大全集合,即CSS命名规则 D ...

  5. 【IDEA】使用intellij的idea集成开发工具中的git插件

    注意:这里并没有介绍git客户端的安装,如果要安装客户端,大家可以参考如下的链接: http://www.runoob.com/git/git-install-setup.html 1.在使用这个id ...

  6. 转载: CentOS/Linux 解决 SSH 连接慢

    CentOS/Linux 解决 SSH 连接慢 现在连接Linux服务器一般都是使用SSH远程连接的方式.最近新装了一台服务器,发现telnet时速度很快,ping时一切也正常,但SSH连接的时候却很 ...

  7. linux缺页异常处理--内核空间【转】

    转自:http://blog.csdn.net/vanbreaker/article/details/7867720 版权声明:本文为博主原创文章,未经博主允许不得转载. 缺页异常被触发通常有两种情况 ...

  8. 配置Nginx来支持php

    安装php7     下载地址:https://secure.php.net/downloads.php这里下载的是:wget http://ar2.php.net/distributions/php ...

  9. android的百度地图开发(二) 定位

    参考:http://blog.csdn.net/mr_wzc/article/details/51590485 第一步,初始化LocationClient类 //获取地图控件引用 mMapView = ...

  10. 【转载】SSIS 64位环境访问Oracle11g

    转载博客:http://www.dotblogs.com.tw/allanyiin/archive/2010/11/21/19585.aspx SSIS 为了要能够在64位的机器上面让SSIS存取Or ...