28 January 2023
The PMD team is pleased to announce PMD 6.54.0.
This is a minor release.
Thanks to @mohan-chinnappan-n a new PMD report format has been added which features a data table with charting functions. It uses an XSLT stylesheet to convert PMD’s XML format into HTML.
See the example report.
--relativize-paths-with flag (or short -z), which replaces --short-names.
It serves the same purpose: Shortening the pathnames in the reports. However, with the new flag it’s possible
to explicitly define one or more pathnames that should be used as the base when creating relative paths.
The old flag --short-names is deprecated.ApexRootNode#getApexVersion has been deprecated for removal. The version returned is
always Version.CURRENT, as the apex compiler integration doesn’t use additional information which Apex version
actually is used. Therefore, this method can’t be used to determine the Apex version of the project
that is being analyzed.CPDConfiguration#setEncoding and
CPDConfiguration#getEncoding. Use the methods
getSourceEncoding and
setSourceEncoding instead. Both are available
for CPDConfiguration which extends AbstractConfiguration.BaseCLITest and BaseCPDCLITest have been deprecated for removal without
replacement. CLI tests should be done in pmd-core only (and in PMD7 in pmd-cli). Individual language modules
shouldn’t need to test the CLI integration logic again. Instead, the individual language modules should test their
functionality as unit tests.FileCollector#addZipFile has been deprecated. It is replaced
by FileCollector#addZipFileWithContent which directly adds the
content of the zip file for analysis.
PMDConfiguration#setReportShortNames and
PMDConfiguration#isReportShortNames have been deprecated for removal.
Use PMDConfiguration#addRelativizeRoot instead.CSVWriterAbstractAntTestHelperfilterMatches creates a new CPD report
with some matches removed with a given predicate based filter.