25 April 2025
The PMD team is pleased to announce PMD 7.13.0.
This is a minor release.
PMD is now providing official docker images at https://hub.docker.com/r/pmdcode/pmd and https://github.com/pmd/docker/pkgs/container/pmd.
You can now analyze your code with PMD by using docker like so:
docker run --rm --tty -v $PWD:/src pmdcode/pmd:latest check -d . -R rulesets/java/quickstart.xml`
More information is available at https://github.com/pmd/docker.
A dialect is a particular form of another supported language. For example, an XSLT is a particular form of an XML. Even though the dialect has its own semantics and uses, the contents are still readable by any tool capable of understanding the base language.
In PMD, a dialect allows to set up completely custom rules, XPath functions, properties and metrics for these files; while retaining the full support of the underlying base language including already existing rules and XPath functions.
See [core] Support language dialects #5438 and Adding a new dialect for more information.
TypeShadowsBuiltInNamespace finds Apex classes, enums, and interfaces
that have the same name as a class, enum, or interface in the System or Schema namespace.
Shadowing these namespaces in this way can lead to confusion and unexpected behavior.net.sourceforge.pmd.lang.xml.pom.PomLanguageModule is deprecated. POM is now a dialect of XML.
Use PomDialectModule instead.net.sourceforge.pmd.lang.xml.wsdl.WsdlLanguageModule is deprecated. WSDL is now a dialect of XML.
Use WsdlDialectModule instead.net.sourceforge.pmd.lang.xml.xsl.XslLanguageModule is deprecated. XSL is now a dialect of XML.
Use XslDialectModule instead.AccessorClassGenerationRule implementation - Pankraz76 (@Pankraz76)