Analyzing JSP Code

The PMD plugin analyzes Java by default. You can configure it to analyze Java Server Pages files instead as shown below.

The example assumes that the JSP source code is stored in various subdirectories under the source directory src/main/webapp and enables the built-in JSP ruleset (basic).

Note that you have to make sure that you configure compileSourceRoots and includes, so that PMD finds the JSP files.

<project>
  ...
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>3.7</version>
        <configuration>
          <language>jsp</language>
          <rulesets>
            <ruleset>jsp-basic</ruleset>
          </rulesets>
          <includes>
            <include>**/*.jsp</include>
          </includes>
          <compileSourceRoots>
            <compileSourceRoot>${basedir}/src/main/webapp</compileSourceRoot>
          </compileSourceRoots>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
  ...
</project>

Note: Configuring compileSourceRoots only works with Maven 3.3.9 and later. For older versions, you'll need to use build-helper-maven-plugin with the add-source goal in order to add the additional source directories, so that PMD finds the JSP files.