Apache Maven PMD插件

x33g5p2x  于2022-10-14 转载在 Apache  
字(2.7k)|赞(0)|评价(0)|浏览(889)

1.概述

PMD插件允许您在项目的源代码上自动运行PMD代码分析工具,并生成带有其结果的站点报告。它还支持与PMD一起分发的单独复制/粘贴检测器工具(或CPD)。

2.插件目标

此插件有4个目标:

**pmd:pmd*根据插件中的规则集和配置集创建pmd站点报告。它还可以生成站点报告以外的pmd输出文件,格式如下:xml、csv或txt。
**pmd:cpd为pmd的复制/粘贴检测器(cpd)工具生成报告。它还可以生成以下任何格式的cpd结果文件:xml、csv或txt。
**pmd:check
验证pmd报告是否为空,如果为空则生成失败。执行pmd:pmd时,默认执行此目标。
**pmd:cpd check*验证cpd报告是否为空,如果不是,则生成失败。在执行pmd:cpd时,默认执行此目标。

3.配置

PMD和CPD报告共享相同的配置。例如,下面告诉Maven将PMD和CPD报告作为站点报告生成的一部分运行。
如果使用linkXRef参数启用此选项,则报告将直接链接到交叉引用源。有关更多详细信息,请参阅JXR插件。以下是可能的配置:

<project>
  ...
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>3.10.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>
      </plugin>
    </plugins>
  </reporting>
  ...
</project>

4.使用

PMD插件使用PMD代码分析工具生成PMD和CPD报告。
要在项目站点中包含带有默认规则集和配置的报告,请在POM部分中设置以下内容:

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

您还可以显式执行PMD插件,并通过在POM部分中设置插件来生成相同的报告,如下所示:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>3.10.0</version>
      </plugin>
    </plugins>
  </build>
  ...
</project>

5.示例

使用规则集PMD插件提供了一个默认规则集,其中启用了各种规则。该规则集可用作/rulesets/java/maven-pmd-plugin-default.xml。请参阅下面的规则,这些规则是使用默认规则集启用的。

<project>
  ...
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>3.10.0</version>
        <configuration>
          <rulesets>
            <!-- A rule set, that comes bundled with PMD -->
            <ruleset>/category/java/bestpractices.xml</ruleset>
            <!-- Custom local file system rule set -->
            <ruleset>d:\rulesets\strings.xml</ruleset>
            <!-- Custom remote rule set accessed via a URL -->
            <ruleset>http://localhost/design.xml</ruleset>
          </rulesets>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
  ...
</project>

6.结论

在这个快速指南中,我们介绍了PMD插件,并给出了使用和定制它的说明。此外,我们还看到了不同的插件目标及其用法。
参考:https://maven.apache.org/plugins/maven-pmd-plugin/

相关文章

微信公众号

最新文章

更多