PMD (software) should not be confused with .pmd.
PMD | |
Programming Language: | Java |
Operating System: | Windows, Linux, |
Genre: | Static program analysis tool |
License: | ,, GNU Lesser General Public License |
PMD is an open source static source code analyzer that reports on issues 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. Rather, PMD is designed to detect inefficient code or bad programming habits, which can reduce the performance and maintainability of the program if they accumulate. It can analyze files written in Java, JavaScript, Apex and Visualforce, PLSQL, Apache Velocity, XML, and XSL.
While PMD does not officially stand for anything,[1] several retro acronyms have been suggested, including for instance Programming Mistake Detector and Project Meets Deadline.[2]
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.[3]
The Copy/Paste Detector (CPD) is an add-on to PMD that uses the Rabin–Karp string search algorithm to find duplicated code.Unlike PMD, CPD works with a broader range of languages including Java, JavaServer Pages (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, Visual Studio Code and Emacs.[4] There is also a CLI version.