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)