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”
	 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提供了一些属性供其他模块继承。
Java代码静态代码检查checkstyle_第1张图片
Java代码静态代码检查checkstyle_第2张图片
元数据
checkstyle配置文件中的元数据metadata会被忽略。
TreeWalker
FileSetCheck TreeWalker检查独立的Java文件。每个模块有个serverity属性用力啊指定严重程度,默认级别是error;tabWidth指定tab键占用多少字符,默认8个字符;Id用来重命名模块名。
自定义消息
Java代码静态代码检查checkstyle_第3张图片AuditListeners
添加Checker子模块来增加监听器和它的属性。
Packages
在这里插入图片描述
在项目根路径下创建checkstyle_packages.xml,添加如下内容:
Java代码静态代码检查checkstyle_第4张图片

你可能感兴趣的:(java,java,开发语言)