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

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

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


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

查看所有标签

猜你喜欢:

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

Web应用漏洞侦测与防御

Web应用漏洞侦测与防御

Mike Shema / 齐宁、庞建民、张铮、单征 / 机械工业出版社 / 2014-8-20 / 69.00

本书由国际知名网络安全专家亲笔撰写,全面讲解如何预防常见的网络攻击,包括HTML注入及跨站脚本攻击、跨站请求伪造攻击、SQL注入攻击及数据存储操纵、攻破身份认证模式、利用设计缺陷、利用平台弱点、攻击浏览器和隐私等, 全书共8章:第1章介绍HTML5的新增特性及使用和滥用HTML5的安全考虑;第2章展示了如何只通过浏览器和最基本的HTML知识就可以利用Web中最常见的漏洞;第3章详细讲解CSR......一起来看看 《Web应用漏洞侦测与防御》 这本书的介绍吧!

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

在线压缩/解压 JS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具