Java代码静态代码检查checkstyle

一、介绍
概述
checkstyle是用来帮助Java程序员遵守编码规范的工具。它是检查代码的过程自动化,从而让人们不必承担这项无聊又重要的工作。这对于强制执行编码标准的项目非常理想。checkstyle高度可配置,能够支持几乎所有编码标准。
用checkstyle结合maven生成的报告实例
特性
checkstyle可以检查代码的很多方面,包括类设计问题、方法设计问题以及检查代码布局和格式问题。
先前版本的文档
当前网站只包含最新的文档,之前的版本进入以下网址进行访问,X.X是对应版本
局限性
Checkstyle是单文件静态分析工具。
二、正文
概述
checkstyle配置要插入到哪些模块,模块是树形结构,Checker模块是根。下一级别的模块包含FileSetChecks(接收一组输入文件并触发错误消息的模块)、Filters(过滤审查四件如错误消息的模块)、AuditListeners(报告接收到的事件的模块)。很多检查是TreeWalker FileSetCheck模块的子模块。TreeWalker的操作方法是将每个Java源文件转化为抽象语法树,把结果传递给子模块检查树中的某些方法。
模块
XML中module元素指定通过name属性标识的模块。

<module name=”Checker”
	<module name=”JavadocPackage”/>
	<module name=”TreeWalker”>
		<module name=”AvoidStarImport”/>
		<module name=”ConstantName”/>
		<module name=”EmptyBlock”/>
	</module>
</module>

checkstyle为每个配置模块加载一个由name属性标识的类。有几种加载类的规则:
(1)直接通过全限定包名加载一个类。把第三方模块加入到配置中很有效。

<module name=”com.puppycrawl.tools.checkstyle.TreeWalker”/>

(2)加载预定义包中的类。

<module name=”AvoidStarImport”/>                         

属性
模块的属性决定了模块如何执行任务。 模块属性都有默认值,如果默认值令人满意,没有必要在配置文件中定义属性。给模块属性设置非默认值,定义module元素的property子元素,也要提供name和value属性。例如:

<module name=”MethodLength”>
	<property name=”max” value=”60”/>
</module>

Checker
所有的配置都有根模块Checker。Checker包含FileSetCheck、Filter、FileFilter、AuditListener子模块。Checker提供了一些属性供其他模块继承。
在这里插入图片描述
在这里插入图片描述
元数据
checkstyle配置文件中的元数据metadata会被忽略。
TreeWalker
FileSetCheck TreeWalker检查独立的Java文件。每个模块有个serverity属性用力啊指定严重程度,默认级别是error;tabWidth指定tab键占用多少字符,默认8个字符;Id用来重命名模块名。
自定义消息
在这里插入图片描述AuditListeners
添加Checker子模块来增加监听器和它的属性。
Packages
在这里插入图片描述
在项目根路径下创建checkstyle_packages.xml,添加如下内容:
在这里插入图片描述

  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐江小鱼

知识创造财富,余额还是小数

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值