PMD (software)
| This article relies on references to primary sources or sources affiliated with the subject, rather than references from independent authors and third-party publications. Please add citations from reliable sources. (April 2007) |
|
|
The topic of this article may not meet Wikipedia's general notability guideline. Please help to establish notability by adding reliable, secondary sources about the topic. If notability cannot be established, the article is likely to be merged, redirected, or deleted. (February 2011) |
PMD is a static ruleset based Java source code analyzer that identifies potential problems like:
- Possible bugs - Empty try/catch/finally/switch blocks.
- Dead code - Unused local variables, parameters and private methods.
- Empty if/while statements.
- Overcomplicated expressions - Unnecessary if statements, for loops that could be while loops.
- Suboptimal code - Wasteful String/StringBuffer usage.
- Classes with high Cyclomatic Complexity measurements.
- Duplicate code - Copied/pasted code can mean copied/pasted bugs, and decreases maintainability.
While PMD doesn't officially stand for anything, it has several unofficial names, the most appropriate probably being Programming Mistake Detector.
Typically, PMD errors are not true errors, but rather inefficient code, i.e. the application could still function properly even if they were not corrected.
Contents |
[edit] Rulesets
PMD includes a set of built-in rules and supports the ability to write custom rules. The custom rules can be written in two ways:
1. Using XPath
2. Using Java classes
[edit] Copy/Paste Detector (CPD)
The Copy/Paste Detector (CPD) is an add-on to PMD that uses the Rabin–Karp string search algorithm to find duplicated code. CPD works with Java, JSP, C, C++, Fortran and PHP code.
[edit] Plugins
PMD has plugins for JDeveloper, Eclipse, JEdit, JBuilder, Omnicore's CodeGuide, NetBeans/Sun Studio, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, Hudson, Jenkins, Sonar and Emacs.
[edit] See also
[edit] External links
- Home page at SourceForge.net.
- CPD at SourceForge.net.
- Book: "PMD Applied". Written by the lead developer, Tom Copeland (http://tomcopeland.blogs.com/).
- Sonar (Quality platform) code quality platform uses PMD and CPD
- Redsauce PMD Parser Small utility that parses PMD output in HTML syntax
| This programming tool-related article is a stub. You can help Wikipedia by expanding it. |