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

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

内容简介: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


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

查看所有标签

猜你喜欢:

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

产品经理必懂的技术那点事儿

产品经理必懂的技术那点事儿

唐韧 / 电子工业出版社 / 2017-1 / 59

《产品经理必懂的技术那点事儿》以非技术背景产品经理了解技术为主题,将技术知识以简单并且易于理解的方式讲述出来,帮助非技术背景产品经理了解技术、学习技术,旨在帮助产品经理高效地与技术人员进行沟通与合作。 《产品经理必懂的技术那点事儿》的主要内容围绕产品经理需要了解的互联网基础技术知识展开,涉及客户端、服务器端、数据库及一些数据处理知识。同时,还就产品经理需具备的一些软实力,例如沟通能力和解决问......一起来看看 《产品经理必懂的技术那点事儿》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具