目标 JDK

PMD 插件中有一个配置元素,可让您设置为哪个目标 JDK编译 Java 代码。通常,您希望这与 maven-compiler-plugin 的配置同步。最好的做法是设置众所周知的属性maven.compiler.target,其余的将自动工作。或者,您可以手动设置它:

<project>
  ...
  <reporting>
    <plugins>
      <plugin>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>3.16.0</version>
        <configuration>
          <targetJdk>1.6</targetJdk>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
  ...
</project>

使用 Maven 工具链

自 PMD 插件版本 3.14.0 起,支持工具链。如果构建系统运行的 JDK 与用于编译的 JDK 不同,这将很有帮助。PMD 读取类文件以进行类型解析,如果 JDK 版本不正确,则会失败并显示 ClassFormatErrors。

要进行设置,请参阅使用工具链的指南,它使用了Maven 工具链插件

使用 maven-toolchains-plugin,您可以为所有相关的 maven-plugin 配置 1 个默认 JDK 工具链。由于 maven-pmd-plugin 3.14.0 与 Maven 3.3.1+ 一起使用时,还可以为插件提供自己的工具链,这在每个执行块有不同的 JDK 调用的情况下很有用(例如,测试源需要不同的JDK 与主要来源相比)。