Search code examples
antpmd

"formatter doesn't support the nested 'param' element" error with PMD Ant task


I'm using Ant 1.9.4.

When I run the following target:

<presetdef name="pmd.scan">
    <pmd rulesetfiles="${root.dir}/scripts/pmd5_rules.xml" minimumPriority="${pmd.minimum.priority}">
        <formatter type="xml" toFile="${pmd.report.xml}" showSuppressed="true">
            <param name="linePrefix" value=".line"/>
        </formatter>
        <fileset refid="pmd.files"/>
        <sourceLanguage name="java" version="1.8"/>
    </pmd>
</presetdef>

I end up with formatter doesn't support the nested "param" element. How to resolve this?


Solution

  • Nested <param> elements under <formatter> were added to PMD 5.0.0 in 2012:

    Ant changes: Removed - 'linePrefix' attribute, use <param name="linePrefix"> instead

    Make sure you're using at least version 5.0.0 of PMD.