PMD 6.37.0 发布,已支持 Java 17
PMD 是一个代码分析器,能够帮助发现常见的编程问题,比如未使用的变量、空的 catch 块、不必要的对象创建等等。最初仅支持 Java 代码,目前还可支持 JavaScript、Salesforce.com Apex 和 Visualforce、PLSQL、Apache Velocity、XML 和 XSL 。
PMD 6.37.0 正式发布,本次更新内容如下:
值得注意的更新:
Java 17 支持:这个版本的 PMD 带来了对 Java 17 的支持。PMD 支持 JEP 409: Sealed Classes 已被提升为 Java 17 的标准语言特性。
重命名的规则:
Java 规则 MissingBreakInSwitch 已被重命名为 ImplicitSwitchFallThrough,以更好地反映该规则的目的;
废弃的规则:
- 以下的 Java 规则已被废弃,并从快速入门规则集中删除,因为新规则
SimplifiableTestAssertion合并了它们的功能:UseAssertEqualsInsteadOfAssertTrueUseAssertNullInsteadOfAssertTrueUseAssertSameInsteadOfAssertTrueUseAssertTrueInsteadOfAssertEqualsSimplifyBooleanAssertion
- Java 规则
ReturnEmptyArrayRatherThanNull已弃用并从快速入门规则集中删除,将使用新规则ReturnEmptyCollectionRatherThanNull取代它; - 以下 Java 规则已弃用并从快速入门规则集中删除,因为新规则
PrimitiveWrapperInstantiation合并了它们的功能:BooleanInstantiationByteInstantiationIntegerInstantiationLongInstantiationShortInstantiation
- Java 规则
UnnecessaryWrapperObjectCreation已弃用,在 PMD 7 之前没有计划进行替换。
修复的问题:
- apex
- [apex] ApexCRUDViolation 没有报告数据库类 DMLs、内联 no-arg 对象实例化和内联列表初始化;
- [apex] ApexCRUDViolation 没有报告 SOQL 的循环;
- Core:
- [core] 语言版本比较
- [xml] 允许使用 XPath 规则检查 Salesforce XML 元数据
- [core] CPD 在使用 --skip-lexical-errors 运行时应避免不必要的拷贝;
更多详情可查看:https://github.com/pmd/pmd/releases/tag/pmd_releases%2F6.37.0