CheckStyle,正如名字所表示的,是用来检查Java Style的。它的开发站点(http://checkstyle.sourceforge.net/index.html)上的说明是“Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. ” 由于其开源,这个工具在公司开发项目时的code review方面有很好的应用(当然,WSAD/RAD本身也有比较强大的code review 功能,但是笔者不知道能不能够自定义)。本文主要是想讲一下在CheckStyle的基础上,自定义Style(以及检查这种Style)的方法,并顺便讲一下它的Elipse插件开发。CheckStyle当前最新的版本是4.3,本文中涉及的为4.2。
首先,CheckStyle的主要流程是:
1。对Java文件进行词法语法分析,生成语法树。
2。载入配置文件(checkstyle-metadata.xml以及自定义的配置文件),register check事件。
3。按照深度优先遍历对语法树进行解析,按照注册的事件,在到达某些节点 ( AST ) 时进行style检查(AST,A child-Sibling Tree,是语法树中的某个节点,其类型在TokenTypes类中定义。)
我们所说的自定义Style的检查,就是在第二步设定的。这里牵涉到一个叫com.puppycrawl.tools.checkstyle.api