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