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>
自 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 与主要来源相比)。