PMD is an open source static Java source code analyzer that reports on issue found within application code. PMD includes built-in rule sets and supports the ability to write custom rules. PMD does not report compilation errors, as it only can process well-formed source files. Issues reported by PMD are rather inefficient code, or bad programming habits, which can reduce the performance and maintainability of the program if they accumulate.
While PMD does not officially stand for anything, it has several unofficial names, the most appropriate probably being Programming Mistake Detector.
Video PMD (software)
Features
PMD is able to detect flaws or possible flaws in source code, 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.
Maps PMD (software)
License
PMD is released under a BSDish license while parts of it are under Apache License 2.0 and the LGPL.
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, PHP, and C# code.
Plugins
PMD has plugins for JDeveloper, Eclipse, jEdit, JBuilder, Omnicore's CodeGuide, NetBeans/Sun Studio, IntelliJ IDEA, TextPad, Maven, Ant, Gradle, Gel, JCreator, Hudson, Jenkins, SonarQube and Emacs. There is also a CLI version.
See also
- List of tools for static code analysis
- SonarQube
References
- Rutar, Almazan, Foster (2004), "A Comparison of Bug Finding Tools for Java". ISSRE '04 Proceedings of the 15th International Symposium on Software Reliability Engineering, IEEE, DOI: 10.1109/ISSRE.2004.1
External links
- Official website
- PMD on GitHub
- PMD on SourceForge.net
- CPD on SourceForge.net.
- Book: "PMD Applied" Written by the lead developer, Tom Copeland (http://tomcopeland.blogs.com/).
- PMD and CPD in Maven
Source of the article : Wikipedia