Maven PMD example
By:Roy.LiuLast updated:2019-08-11
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.
References
From:一号门


COMMENTS