Java代码静态检查技术探究(四)

举报
Jet Ding 发表于 2021/07/22 17:58:29 2021/07/22
【摘要】 规则列表上面的快速启动配置列表也是最常用的规则列表,从规则名称大体可以看出它们的意图。具体可参见如下链接:https://pmd.github.io/pmd-6.23.0/pmd_rules_java.html l  最佳做法列表。最佳实践的规则列表。category/java/bestpractices.xmll  编码风格。编码风格规则列表。category/java/codestyle...

规则列表

上面的快速启动配置列表也是最常用的规则列表,从规则名称大体可以看出它们的意图。具体可参见如下链接:

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>
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。