![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PMD
文章平均质量分 82
夜里慢慢行456
菜鸡
展开
-
深入源码P3C-PMD:使用流程(1)
PMD(Programming Mistake Detector)是一款用于检查代码中的潜在问题的开源工具。它通过解析代码,并应用各种规则来发现代码中的潜在问题,如未使用的变量、无效的if语句、复杂的表达式等。PMD支持多种编程语言,并提供了丰富的配置选项和输出格式,方便用户进行代码分析和结果处理。原创 2024-08-01 19:14:45 · 692 阅读 · 0 评论 -
深入源码P3C-PMD:启动源码(2)
pmd 的启动类为 PmdCli,作为命令行的启动器, 其依赖 picocli 作为控制台命令框架。而且几个 Command 通过注解和继承,注册到 pico 的命令集中。picocli 官网:https://picocli.info/规则的调用核心: rule.apply(node, ctx);下面我们开始从启动探寻 PMD 的源码设计。原创 2024-08-02 17:12:07 · 409 阅读 · 0 评论 -
深入源码P3C-PMD:PMD 是如何解析一个 java 文件?(3)
符号表是被认为是 Java 中的元数据,“Utf8项最终会解析成Symbol,而Symbol存放Java程序中所需的元数据、真实数据。JavaParserImpl 接受字符流,并处理,依赖于 JavaCC,配置可以看这个文件,javacc的用法可以参考官网,本篇不做太多的涉猎。后面的很多部分代码都与 javacc 的使用相关,mark 一下,有时间再补充 javacc 相关的内容。前文讲的,pmd 在 parse 阶段处理,并将职责移交给 JavaParserImpl。原创 2024-08-05 11:57:39 · 273 阅读 · 0 评论 -
深入源码P3C-PMD:rule (4)
PMD 是基于 AST的检测框架,语法树表示了源代码中的语法与语义特征。Rule 遍历 AST 并匹配某些条件。自定义规则有2种方式: Xpath query 和 Java visitor。Xpath 直接使用 XML 定义 更简单,但是有一些只能通过 Java 调用 PMD api 的实现,是Xpath无法达到的。新的规则必须在 ruleset 中定义,并使用 class 属性,引用规则的实现。原创 2024-08-06 11:08:26 · 1012 阅读 · 0 评论