Analyzing JavaScript Code

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

The example assumes that the JavaScript source code is stored in the subdirectory src/main/javascript and enables all rules from the "Best Practices", "Codestyle", and "Error Prone" categories.

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

See JavaScript Rule Index for the list of available rules.

<project>
  ...
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>3.21.2</version>
        <configuration>
          <language>javascript</language>
          <rulesets>
            <ruleset>/category/ecmascript/bestpractices.xml</ruleset>
            <ruleset>/category/ecmascript/codestyle.xml</ruleset>
            <ruleset>/category/ecmascript/errorprone.xml</ruleset>
          </rulesets>
          <includes>
            <include>**/*.js</include>
          </includes>
          <compileSourceRoots>
            <compileSourceRoot>${basedir}/src/main/javascript</compileSourceRoot>
          </compileSourceRoots>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>pmd</report>
            </reports>
          </reportSet>
        </reportSets>
      </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 JavaScript files.