PMD 插件使用 PMD 代码分析工具生成 PMD 和 CPD 报告。
要在项目站点中包含具有默认规则集和配置的报告,请在 POM 的<reporting>部分中设置以下内容:
<project>
...
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.16.0</version>
</plugin>
</plugins>
</reporting>
...
</project>您还可以通过在 POM 的<build>部分中设置插件来显式执行 PMD 插件并生成相同的报告,如下所示:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.16.0</version>
</plugin>
</plugins>
</build>
...
</project>PMD 和 CPD 报告共享相同的配置。例如,以下内容告诉 Maven 在生成站点报告时运行 PMD 和 CPD 报告。
如果您使用linkXRef参数启用此功能,报告将直接链接到交叉引用的源。有关更多详细信息,请参阅JXR 插件。
如果您的源代码使用非默认编码,您可以使用sourceEncoding参数告诉 Maven 在读取 java 源代码时使用哪种编码。还要注意排除要忽略的源的能力。
您可以配置触发 CPD 的最小代码大小。默认的100 个令牌对应于大约 5-10 行代码。
由于 PMD 解析 Java 源代码,因此它需要知道要使用哪个 Java 版本。以下是可能的配置:
<project>
...
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.16.0</version>
<configuration>
<linkXref>true</linkXref>
<sourceEncoding>utf-8</sourceEncoding>
<minimumTokens>100</minimumTokens>
<targetJdk>1.5</targetJdk>
<excludes>
<exclude>**/*Bean.java</exclude>
<exclude>**/generated/*.java</exclude>
</excludes>
<excludeRoots>
<excludeRoot>target/generated-sources/stubs</excludeRoot>
</excludeRoots>
</configuration>
<reportSets>
<reportSet><!-- by default, id = "default" -->
<reports><!-- select non-aggregate reports -->
<report>pmd</report>
<report>cpd</report>
</reports>
</reportSet>
<reportSet><!-- aggregate reportSet, to define in poms having modules -->
<id>aggregate</id>
<inherited>false</inherited> <!-- don't run aggregate in child modules -->
<reports>
<report>aggregate-pmd</report>
<report>aggregate-cpd</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
...
</project>