Stable release |
5.5.3 / 28 January 2017
|
---|---|
Repository | github |
Development status | Active |
Written in | Java |
Operating system | Windows, Linux, OS X |
Type | Static program analysis tool |
License | BSD License, Apache License 2.0, GNU Lesser General Public License |
Website | pmd |
PMD is open source and a static Java source code analyzer. It uses rule-sets to define when a piece of source is erroneous. PMD includes a set of built-in rules and supports the ability to write custom rules. Typically, issues reported by PMD are not true errors, but rather inefficient code, i.e. the application could still function properly even if they were not corrected.
While PMD does not officially stand for anything, it has several unofficial names, the most appropriate probably being Programming Mistake Detector.
PMD is able to detect flaws or possible flaws in source code, like:
PMD is released under a BSDish license while parts of it are under Apache License 2.0 and the LGPL.
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.
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.