PMD 6.35.0 发布,多语言静态代码自动分析工具

栏目: 软件资讯 · 发布时间: 5年前

内容简介:PMD 是一个代码分析器,能够帮助发现常见的编程问题,比如未使用的变量、空的 catch 块、不必要的对象创建等等。最初仅支持 Java 代码,目前还可支持 JavaScript、Salesforce.com Apex 和 Visualforce、PLSQL、A...

PMD 是一个代码分析器,能够帮助发现常见的编程问题,比如未使用的变量、空的 catch 块、不必要的对象创建等等。最初仅支持 Java 代码,目前还可支持 JavaScript、Salesforce.com Apex 和 Visualforce、PLSQL、Apache Velocity、XML 和 XSL 。

PMD 6.35.0 正式发布,本次更新内容如下:

Javascript 模块现在至少需要 Java 8:

我们使用了最新版本的 JavaScript 实现 Rhino 用于解析 JavaScript 代码,至少需要 Java 8。因此我们决定将 pmd-javascript 模块也升级到 Java 8。这意味着,从现在开始,需要一个 Java 8 或更高版本的运行时,以便来分析 JavaScript 代码。PMD 核心仍然只需要 Java 7。

新规则:

此版本附带 3 个新的 Java 规则:

  • [JUnit5TestShouldBePackagePrivate](<https://pmd.github.io/pmd-6.35.0/pmd_rules_java_bestpractices.html#junit5testshouldbepackageprivate>) 强制执行以下约定:JUnit 5 测试应该具有最小的可见性。您可以像下面这样尝试此规则:

    <rule ref="category/java/bestpractices.xml/JUnit5TestShouldBePackagePrivate" />

  • [CognitiveComplexity](<https://pmd.github.io/pmd-6.35.0/pmd_rules_java_design.html#cognitivecomplexity>) 使用 cognitive complexity 指标来查找过于复杂的代码。该度量标准以多种方式改进了类似的循环复杂性,可以像下面这样尝试此规则:

    <rule ref="category/java/design.xml/CognitiveComplexity" />

  • [MutableStaticState](<https://pmd.github.io/pmd-6.35.0/pmd_rules_java_design.html#mutablestaticstate>) 查找非最终的非私有静态字段。这些字段破坏了封装,因为可以

    在程序中的任何位置修改这些字段。可以像下面这样尝试此规则:

    <rule ref="category/java/design.xml/MutableStaticState" />

修改后的规则:

  • Java 规则 CompareObjectsWithEquals 现在有一个新属性 typesThatCompareByReference。通过这个属性,你可以配置应该通过引用进行比较被列入白名单的类型。默认情况下,java.lang.Enum 和 java.lang.Class 是允许的,但是你可以在这里添加自定义类型。 此外,现在还允许对常量进行比较;

废弃的规则:

  • Java 规则 DefaultPackage 已经被弃用,取而代之的是 CommentDefaultAccessModifier;
  • Java 规则 CloneThrowsCloneNotSupportedException 已被弃用,没有替换;

修复的问题:

  • apex
    • #3183: [apex] ApexUnitTestMethodShouldHaveIsTestAnnotation 在帮助方法中出现误报;
    • #3243: [apex] 遍历 AST 时正确处理 findBoundary 核心;
  • core
    • #2639: [core] 如果路径中的目录不存在,则不创建 PMD CLI 输出文件;
    • #3196: [core] 废弃 ThreadSafeReportListener;
  • doc
    • #3230: [doc] 删除语言索引页的 "Edit me" 按钮;
  • dist
    • #2466: [dist] 分发存档不包括所有批处理脚本;
  • java
    • #3269: [java] 修复 MethodTypeResolution 中的 NPE;
  • java-design
    • #2780: [java] 文档中的 DataClass 例子导致了错误的漏报;
    • #2987: [java] 新规则:公共和受保护的静态字段必须是最终的;
    • #2329: [java] Java 的 Cognitive complexity 规则;
  • javascript:
    • #699: [javascript] 更新 Rhino 库至 1.7.13;
    • #2081: [javascript] 解析 Javascript 文件时出现 OutOfMemoryError 故障;
    • ……

更多详情可查看:https://github.com/pmd/pmd/releases/tag/pmd_releases%2F6.35.0


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Seasoned Schemer

The Seasoned Schemer

Daniel P. Friedman、Matthias Felleisen / The MIT Press / 1995-12-21 / USD 38.00

drawings by Duane Bibbyforeword and afterword by Guy L. Steele Jr.The notion that "thinking about computing is one of the most exciting things the human mind can do" sets both The Little Schemer (form......一起来看看 《The Seasoned Schemer》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具