CheckStyle的使用及其在Eclipse中的集成

开发 后端
在上一篇相关文章中,我介绍了CheckStyle的使用及其在Eclipse中的集成。这一篇可以算是上一篇的附录,详细描述了15类几十种预定义check的定义及使用范围。

这里的有些check有个公共的属性tokens,意思是该check应用的范围,例如同样是检查方法的长度,普通方法可能最多可以有150行,而构造函数则最多只能有60行。这时,虽然同样是使用MethodLength这个check,但是可以用tokens这个属性进行区分,如下xml文件的片段:

这其中应用了两次MethodLength,***次的tokens定义为METHOD_DEF,即普通的方法;第二次的tokens定义为CTOR_DEF,即构造函数,并且在此定义了与缺省值不同的值,即60。这样CheckStyle可以根据方法的种类不同而执行不同的check策略。CheckStyle也定义了大量的诸如CTOR_DEF形式的tokens类型,应用于不同的check中的tokens,其定义在com.puppycrawl.tools.checkstyle.api.TokenTypes类中。这些Tokens实际上是对源代码文件进行拆分后做对应的时候的一些标志,类似编译中的语法分析,CheckStyle的原理应该就是在对源代码做语法分析后,针对这些Tokens的内容,比对预先设定好的代码写作策略,并给出对比的结果。TokenTypes类内容很多,这里就不一一列举了。

下面是对具体的check的描述。这些check可以被分为了15类,如下所示:

===== CHECK STYLE ========

----- Annotations -------- JDK5中的Annotation相关(未展开)

----- Block Checks ------- 代码块相关

----- Class Design ------- 类设计相关

----- Coding ------------- 编码相关

----- Duplicate Code ----- 冗余代码

----- Headers ------------ 源文件的头

----- Imports ------------ 引入包相关

----- Javadoc Comments --- JavaDoc相关

----- Metrics ------------ 复杂度分析

----- Miscellaneous ------ 其它

----- Modifiers ---------- 修饰符相关

----- Naming Conventions - 命名规范

----- Regexp ------------- 正则表达式相关

----- Size Violations ---- 文件大小等相关

----- Whitespace --------- 空格处理相关

==========================

具体的内容由于比较多,我写在了一个单独的WORD文档中。有了这些预置的check,基本可以满足规范编码的要求了。在Myeclipse的环境下,可以通过对Formatter的定义,在format的过程中可以自动满足一些check的要求,这部分我会在《应用CheckStyle检查代码和Formatter规范代码》中予以详细说明。

【编辑推荐】

  1. Eclipse和CDT的兼容性很有问题
  2. Eclipse插件开发之FindBugs插件
  3. Eclipse插件jinto资源配置文件
  4. Eclipse启动参数大全
  5. 深入浅出Eclipse RCP(1):Hello RCP
责任编辑:book05 来源: 163博客
相关推荐

2011-12-01 09:50:28

2009-06-17 17:44:41

Eclipse插件Sp

2017-05-24 09:43:42

2009-07-14 17:12:26

ibatis自动代码生

2014-12-31 09:45:48

EhCache

2020-05-13 15:10:04

矩阵乘法深度学习人工智能-

2018-07-20 05:44:33

蓝牙5物联网通信

2014-09-30 09:20:13

SDN openflow NFV

2022-03-24 10:23:51

时间轮方法任务

2020-11-19 10:17:54

Python开发感知器

2023-12-26 08:22:30

光纤综合布线

2010-05-17 09:19:03

Subversion

2009-06-02 15:20:16

eclipse tomtomcatplugitomcatplugi

2009-08-07 10:00:00

在Eclipse中安装

2020-08-13 17:11:29

物联网数字学习IOT

2017-09-01 15:21:18

Raft算法CMQ应用

2017-09-01 15:49:41

Raft算法CMQ

2022-09-29 08:00:00

人工智能运输公平性

2017-01-17 09:38:52

ZooKeeperHadoopHBase

2023-03-02 08:26:36

RedisAVL红黑树
点赞
收藏

51CTO技术栈公众号