Maven 1.x PMD Plugin
  1. Maven 1.x PMD Plugin
  2. MPPMD-19

Java language level not settable through plugin

    Details

    • Type: New Feature New Feature
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7
    • Fix Version/s: 1.8
    • Labels:
      None
    • Environment:
      Windows XP
    • Number of attachments :
      0

      Description

      The maven plugin does not allow setting the language level (1.3, 1.4 or 1.5) for PMD. This can be easily fixed by using 'targetjdk' property in the plugin script:

      Original plugin.jelly (version 1.7):

      <j:choose>
      <j:when test="$

      {sourcesPresent == 'true'}">
      <pmd rulesetfiles="${maven.pmd.rulesetfiles}">
      <formatter type="xml" toFile="${maven.build.dir}/pmd-raw-report.xml"/>
      <fileset dir="${pom.build.sourceDirectory}"

      Change:

      <j:choose>
      <j:when test="${sourcesPresent == 'true'}

      ">
      <pmd rulesetfiles="$

      {maven.pmd.rulesetfiles}

      " targetjdk="$

      {maven.pmd.targetjdk}

      >
      <formatter type="xml" toFile="$

      {maven.build.dir}

      /pmd-raw-report.xml"/>
      <fileset dir="$

      {pom.build.sourceDirectory}

      "

      By default 'maven.pmd.targetjdk' can be equal to 'maven.compile.source'

      regards,

      Wim

        Issue Links

          Activity

          Hide
          dion gillard added a comment -

          This fix causes the PMD report to fail if maven.compile.source is set to '1.2' with the following message:

          Caused by: The targetjdk attribute, if used, must be set to either '1.3', '1.4', '1.5', '1.6' or 'jsp'
          at net.sourceforge.pmd.ant.PMDTask.validate(PMDTask.java:250)
          at net.sourceforge.pmd.ant.PMDTask.execute(PMDTask.java:117)
          at org.apache.tools.ant.Task.perform(Task.java:364)
          at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:195)
          at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:250)

          The workaround is to either use the previous version of the plugin or to set

          maven.pmd.targetjdk=1.3

          Show
          dion gillard added a comment - This fix causes the PMD report to fail if maven.compile.source is set to '1.2' with the following message: Caused by: The targetjdk attribute, if used, must be set to either '1.3', '1.4', '1.5', '1.6' or 'jsp' at net.sourceforge.pmd.ant.PMDTask.validate(PMDTask.java:250) at net.sourceforge.pmd.ant.PMDTask.execute(PMDTask.java:117) at org.apache.tools.ant.Task.perform(Task.java:364) at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:195) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:250) The workaround is to either use the previous version of the plugin or to set maven.pmd.targetjdk=1.3

            People

            • Assignee:
              Arnaud Heritier
              Reporter:
              Wim Deblauwe
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: