PMD 6.9.0

PMD 6.9.0

Home > Windows > Developer Tools > PMD 6.9.0
download PMD 6.9.0

PMD 6.9.0


Added On




PMD is a static source code analyzer. It finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and so forth. It's mainly concerned with Java and Apex, but supports six other languages.

PMD features many built-in checks (in PMD lingo, rules), which are documented for each language in our Rule references. Also support an extensive API to write your own rules, which you can do either in Java or as a self-contained XPath query.

PMD is most useful when integrated into your build process. It can then be used as a quality gate, to enforce a coding standard for your codebase. Among other things, PMD can be run:

  • As a Maven goal
  • As an Ant task
  • As a Gradle task
  • From command-line
  • CPD, the copy-paste detector, is also distributed with PMD. You can also use it in a variety of ways


    File Name

    File Size


    Date Added

    Home Page

    MD5 Checksum

    OS Supported

    : PMD 6.9.0


    : 42.2 MB

    : Open Source

    : 30-Oct-2018


    : E5D3A9625682F56C318A76784CF0A381

    : Win7 32-bit / Win7 64-bit / Win8 32-bit / Win8 64-bit / Vista 32-bit / Vista 64-bit

    Improved Golang CPD Support:
    CPD is now better at detecting duplicates, as comments are recognized as such and ignored.
    New Rules:
    The new PLSQL rule CodeFormat (plsql-codestyle) verifies that PLSQL code is properly formatted. It checks e.g. for correct indentation in select statements and verifies that each parameter is defined on a separate line.
    Fixed Issues:
    All -
    [core] Exclude specific files from command line
    [core] Could not find or load main class when using symlinked
    [core] LanguageRegistry uses default class loader when invoking ServiceLocator
    [doc] How to configure “-cache "
    [doc] Broken link to adding new cpd language documentation
    apex -
    [apex] ClassCastException caused by Javadoc
    java -
    [java] PMD crashes with java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/xml/ws/Service
    java-bestpractices -
    - [java] GuardLogStatement: “There is log block not surrounded by if” doesn’t sound right
    - [java] UnusedImports false positive for static import with package-private method usage
    - [java] Update CommentDefaultAccessModifierRule to extend AbstractIgnoredAnnotationRule
    - [java] JUnitTestsShouldIncludeAssert false positive
    - [java] UnusedImports false positive with static ondemand import with method call
    java-codestyle -
    - [java] UnnecessaryFullyQualifiedName doesn’t flag same package FQCNs
    - [java] UnnecessaryModifier wrong message public->static
    java-design -
    - [java] Processing error (ClassCastException) if a TYPE_USE annotation is used on a base class in the “extends” clause
    jsp -
    - [jsp] JspTokenManager has a problem about jsp scriptlet
    documentation -
    - [doc] Provide some explanation for WHY duplicate code is bad, like mutations
    API Changes:
    - PMD has a new CLI option -ignorelist. With that, you can provide a file containing a comma-delimit list of files, that should be excluded during analysis. The ignorelist is applied after the files have been selected via -dir or -filelist, which means, if the file is in both lists, then it will be ignored. Note: there is no corresponding option for the Ant task, since the feature is already available via Ant’s FileSet include/exclude filters.
    External Contributions:
    - [core] [cpd] Generalize ANTLR tokens preparing support for ANTLR token filter
    - [doc] Update with information about risks
    - [java] Static Modifier on Internal Interface pmd #1356
    - [doc] Updated outdated note in the building documentation.
    - [java] Simplify check for ‘Test’ annotation in JUnitTestsShouldIncludeAssertRule.
    - [java] Add missing null check AbstractJavaAnnotatableNode
    - [all] Upgrading Apache Commons IO from 2.4 to 2.6
    - [all] Upgrading Apache Commons Lang 3 from 3.7 to 3.8.1
    - [all] Replacing deprecated IO methods with ones that specify a charset
    - [java] Improved message for GuardLogStatement rule
    - [go] [cpd] Add CPD support for Antlr based grammar on Golang
    - [all] Upgrading SLF4J from 1.7.12 to 1.7.25
    - [java] Fix Issue 1343: Update CommentDefaultAccessModifierRule
    - [all] Replacing IOUtils.closeQuietly(foo) with try-with-resources statements
    - [jsp] Fix issue 1402: JspTokenManager has a problem about jsp scriptlet
    - [core] Add ignore file path functionality
    - [doc] Fix broken link.

    Screenshots are not available

    Related Software