Basic Information
PMD is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and so forth. Additionally it includes CPD, the copy-paste-detector.
Tool first release date
2002-06-25
Version release date
2019-03-31
Software cost
Free
Software license
BSD-style
Hosting
Self-Hosted
Supported operating systems
macOS, Linux, Windows
Tool website
Process Integration
Deployment model
Workstation, CI Server
Analysis inputs
Compilation along with all dependencies, Source code
SCM Integration
None
Display results in IDE
Android Studio, Eclipse, IntelliJ IDEA
Live analysis & feedback while coding in IDE
None
Pre-commit invocation from workstation
CI Integration
Generic command line interface (CLI), Ant, Gradle, Hudson, Jenkins, Maven
Able to analyze incremental changes to code (commit, patch, pull request)
Can schedule scans
API method to report results in SARIF format
API method to report results in XML/JSON/CSV format
Coverage
Supported programming languages
Apex, C, C#, C++, Fortran, Go, Groovy, Java, JavaScript, JSP, Kotlin, Matlab, Objective-C, Perl, PHP, PL-SQL, Python, Ruby, Scala, Swift, XML, XSL
Supported development frameworks
Apache Velocity, Visualforce
Claimed Weakness Coverage
Claimed Weakness Coverage information hasn't been collected yet for this analyzer.
Really want it? Let us know.
Really want it? Let us know.
Checker Customization
Can disable checkers
Can customize checker logic
First-class API to create new checkers
Speed & Scalability
Parallelizes on one host
Parallelizes across more than one host
Results Quality
Provides explanation of warning
Provides severity of warning
Provides confidence information about warning
Provides code context around warning
Provides control flow context for warning
Provides data flow context for warning
Provides code coverage information per checker
Reporting
Results suppression even after code changes
Show differences in results set to previous scan
Integration with external remediation bug tracker
None
Two-way data sync with external remediation bug tracker
Graphical user interface (GUI)
Ability to search results
Results remediation workflow
Hierarchical reporting for multiple projects, teams, departments, etc.
Filter results by compliance standard
None
Centralized reporting
Support
Installation guide or documentation
User/operator guide or documentation
Integration guide or API documentation