PMD 6.9.0 released
28-October-2018 - 6.9.0
The PMD team is pleased to announce PMD 6.9.0.
This is a minor release.
Table Of Contents
New and noteworthy
Improved Golang CPD Support
Thanks to the work of ITBA students Matías Fraga,
Tomi De Lucca and Lucas Soncini,
Golang is now backed by a proper Antlr Grammar. This means CPD is now better at detecting duplicates,
as comments are recognized as such and ignored.
- The new PLSQL rule
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.
- #649: [core] Exclude specific files from command line
- #1272: [core] Could not find or load main class when using symlinked run.sh
- #1377: [core] LanguageRegistry uses default class loader when invoking ServiceLocator
- #1394: [doc] How to configure “-cache "
- #1412: [doc] Broken link to adding new cpd language documentation
- #1396: [apex] ClassCastException caused by Javadoc
- #1330: [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
- #1202: [java] GuardLogStatement: “There is log block not surrounded by if” doesn’t sound right
- #1209: [java] UnusedImports false positive for static import with package-private method usage
- #1343: [java] Update CommentDefaultAccessModifierRule to extend AbstractIgnoredAnnotationRule
- #1365: [java] JUnitTestsShouldIncludeAssert false positive
- #1404: [java] UnusedImports false positive with static ondemand import with method call
- #1199: [java] UnnecessaryFullyQualifiedName doesn’t flag same package FQCNs
- #1356: [java] UnnecessaryModifier wrong message public->static
- #1369: [java] Processing error (ClassCastException) if a TYPE_USE annotation is used on a base class in the “extends” clause
- #1402: [jsp] JspTokenManager has a problem about jsp scriptlet
- #1349: [doc] Provide some explanation for WHY duplicate code is bad, like mutations
- 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
-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.