PMD 是一个代码分析器,能够帮助发现常见的编程问题,比如未使用的变量、空的 catch 块、不必要的对象创建等等。最初仅支持 Java 代码,目前还可支持 JavaScript、Salesforce.com Apex 和 Visualforce、PLSQL、Apache Velocity、XML 和 XSL 。
PMD 6.33.0 正式发布,本次更新内容如下:
新特性和值得注意的地方:
外部贡献:
- #3161: [plsql] 在 SQL*Plus 脚本中添加了对词法参数的支持,允许排除解析器无法理解的行;
- #3167: [java] 改正快速入门规则集中的错别字。
修复的问题:
- apex-design
- #3142: [apex] ExcessiveClassLength 在同一个类上有多个警告;
- java
- #3117: [java] 解析嵌套在 lambdas 中的无效代码时的无限循环;
- #3145: [java] 使用"record"作为变量名时出现解析异常;
- java-bestpractices
- #3118: [java] UnusedPrivateMethod 在将 lombok.val 作为参数传递时误报;
- #3144: [java] GuardLogStatement 可以有更详细的例子;
- #3155: [java] GuardLogStatement:未加防护的方法调用时出现漏报;
- #3160: [java] MethodReturnsInternalArray 不考虑静态最终字段和以空数组初始化的字段;
- java-errorprone
- #3146: [java] 当使用 String.format 时,InvalidLogMessageFormat 检测失败;
- #3148: [java] CloseResource 带有 Objects.nonNull 的误报;
- #3165: [java] 在变量中使用 String.format 时,InvalidLogMessageFormat 检测失败;
- java-performance
- #2427: [java] ConsecutiveLiteralAppend 在 lambda 内部带有 builder 的误报;
- #3152: [java] ConsecutiveLiteralAppends 和 InsufficientStringBufferDeclaration:带有 switch 表达式的 FP
- plsql
- #195: [plsql] “&”符号在 SQL 文件中引起 PMD 处理错误——文件中的词法错误。
更多详情可查看:https://github.com/pmd/pmd/releases/tag/pmd_releases%2F6.33.0