Main Tutorials

Maven – PMD example

In this article, we will show you how to use Maven PMD Plugin to analyze the Java code.

P.S PMD requires Java 1.7

1. Maven PMD Plugin

Define the maven-pmd-plugin in the reporting tag, so that mvn site will generate the PMD report.

pom.xml

	<reporting>
        <plugins>
      
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>3.11.0</version>
            </plugin>

        </plugins>
    </reporting>

2. Java Code

A simple Java code. We will use Maven PMD plugin to analyze this code and display the issues in a report.


package com.mkyong.examples;

public class StaticCodeExample {

    //Unused field
    private int abc;

    private String ip = "127.0.0.1";

    public void test() {

        String[] field = {"a", "b", "c", "s", "e"};

        String s = "";
        for (int i = 0; i < field.length; ++i) {
            s = s + field[i];
        }

        System.out.println(ip);

    }

}

3. Maven Site

mvn compile site to generate a Maven site for the Java project, the PMD report will be generated and integrated into the Maven site automatically.


$ mvn compile site

[INFO] Generating "PMD" report           --- maven-pmd-plugin:3.11.0:pmd
[INFO] Generating "Dependency Information" report --- maven-project-info-reports-plugin:3.0.0:dependency-info
[INFO] Generating "About" report         --- maven-project-info-reports-plugin:3.0.0:index
[INFO] Generating "Plugin Management" report --- maven-project-info-reports-plugin:3.0.0:plugin-management
[INFO] Generating "Plugins" report       --- maven-project-info-reports-plugin:3.0.0:plugins
[INFO] Generating "Summary" report       --- maven-project-info-reports-plugin:3.0.0:summary
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  7.732 s
[INFO] Finished at: 2018-11-19T15:38:56+08:00
[INFO] ------------------------------------------------------------------------

4. PMD Report

Review the report at target/site/pmd.html

5. FAQs

5.1 Review all PMD built-in rules for Java here.

Download Source Code

$ git clone https://github.com/mkyong/maven-examples.git
$ cd maven-static-code-analysis
$ mvn compile site

# view report at target/site/pmd.html

References

  1. PMD official site
  2. Maven PMD Plugin
  3. List of tools for static code analysis

About Author

author image
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.

Comments

Subscribe
Notify of
2 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
shreya
4 years ago

I am getting a build failure…I’ve done exactly what you’ve told

Fernando Franzini
5 years ago

tried to do with Groovy? Do you know if it works?