PMD is a source code analyzer. It finds unused variables, empty catch blocks, unnecessary object creation, and so forth.

Latest version

5.0.3 (5th April 2013)

Get Involved

Recent announcements

  • 2013-04-05 PMD 5.0.3: minor version with lots of bug fixes (Changelog)

  • 2013-02-03 PMD 5.0.2: minor version with lots of bug fixes (Changelog)

  • 2012-11-28 PMD 5.0.1: minor version with lots of bug fixes.

    • 22 Fixed bugs
    • New EcmaScript Rule: Basic ruleset: AvoidTrailingComma
    • Improved JSP parser to be less strict with not valid XML documents (like HTML)
    • Improved CPD: Support in CPD for IgnoreAnnotations and SuppressWarnings("CPD-START")
    • PMD Command Line: Improved command line interface (CLI) parsing using JCommander.
  • 2012-07-29 PMD on github: Our source code repository is now on github.

    You can easily fork it from here: https://github.com/pmd/pmd.

  • 2012-05-01 PMD 5.0.0: major version supporting additional languages and new rules (Changelog)

    • Additional languages support (Java, JavaScript, XML, XSL, JSP)
    • Many bug fixes and new rules
    • Internal refactoring which breaks compatibility, but adds generic support for additional languages.
    • Maven coordinates have been changed: net.sourceforge.pmd:pmd
    • For details, see the Changelog.

    Note: PMD 5 is not backwards compatible with PMD 4.x.

Next development version

5.1.0-SNAPSHOT

Previous versions