Java代码静态检查技术探究(四)
规则列表
上面的快速启动配置列表也是最常用的规则列表,从规则名称大体可以看出它们的意图。具体可参见如下链接:
https://pmd.github.io/pmd-6.23.0/pmd_rules_java.html
l 最佳做法列表。最佳实践的规则列表。
category/java/bestpractices.xml
l 编码风格。编码风格规则列表。
category/java/codestyle.xml
l 设计风格:设计风格列表。
category/java/design.xml
l 文档:代码文档规则相关列表。
category/java/documentation.xml
l 易出错规则: 容易出错的规则列表。
category/java/errorprone.xml
l 多线程规则: 处理多线程问题规则列表。
category/java/multithreading.xml
l 性能问题
category/java/performance.xml
l 安全性:标记潜在的安全漏洞的规则。
category/java/security.xml
自定义规则
我们可以自定义规则。
规则集是一个XML配置文件,它描述了PMD运行中要执行的规则集合。PMD包含了内置的规则集,可以用默认配置来运行快速分析,但用户从一开始就可以制作自己的规则集,这样可以拥有更好的可配置性。
创建一个规则集
下面是一个空规则集的列表:
<?xml version="1.0"?>
<ruleset name="Custom Rules"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
<description>
我的自定义规则
</description>
<!-- 你的规则 -->
</ruleset>
引入单一规则
<rule ref="category/java/errorprone.xml/EmptyCatchBlock" />
将上面这一行添加到上面的XML文件中,会在你的规则集中添加这个规则EmptyCatchBlock。这是一个Java规则,它会对每个在PMD搜索空间内的Java文件执行此规则。
EmptyCatchBlock仅仅是规则的名称。如果指定的规则不存在,PMD会报错。
批量添加规则
你可以通过如下方式批量添加规则,也可以取消某些规则:
rule ref="category/java/codestyle.xml">
<exclude name="WhileLoopsMustUseBraces" />
<exclude name="IfElseStmtsMustUseBraces" />
</rule>
- 点赞
- 收藏
- 关注作者
评论(0)