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.
<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

I am getting a build failure…I’ve done exactly what you’ve told
tried to do with Groovy? Do you know if it works?