Java代码规范插件checkstyle
CheckStyle检验的主要内容
·Javadoc注释
·命名约定
·标题
·Import语句
·体积大小
·空白
·修饰符
·块
·代码问题
·类设计
·混合检查(包活一些有用的比如非必须的System.out和printstackTrace)
从上面可以看出,CheckStyle提供了大部分功能都是对于代码规范的检查,而没有提供象PMD和Jalopy那么多的增强代码质量和修改代码的功能。但是,对于团队开发,尤其是强调代码规范的公司来说,它的功能已经足够强大。Checkstyle插件可以集成到Eclipse IDE中去,能确保Java代码遵循标准代码样式。
一、CheckStyle 安装方法
二、CheckStyle 使用
3验证安装是否成功
重新启动eclipse,选择“window”--“preferences”,查看是否存在Checkstyle选择,若存在说明安装成功。如图
4配置Checksytel
选择“window”--“preferences”--“Checkstyle”,点击左侧的New按钮,出现添加新配置选项。
在Type中选择:External configuration file
Name:自己根据自己实际需求自定义名称
Location:选择Checksytel的配置文件(该配置文件中定义了相关的style规则)
完成配置后将添加的配置选为默认配置,如图
5Checkstyle使用
在工程上点击右键,选择“Checkstyle”选项,
常用的选项为“Activate Checkstyle”、“Check Code with Checkstyle”、“Clear Checkstyle violations”
其中“Activate Checkstyle”为激活CheckStyle功能,在你编码中会自动提示代码的规范问题。(经测试一般是需要保存代码后才会有提示)
然后你可以根据checkStyle的配置的语法自己写代码的规范,然后在myeclipse中设置你的那个xml为默认就ok了,下面我找了一个网址,大家可以看一下
http://www.blogjava.net/japper/archive/2012/05/24/379054.html
checkstyle常见提示速查
Checkstyle常见错误和警告提示见下表所示:
| 错误提示 | 错误说明 |
| missing a javadoc comment | 缺少类注释 |
| Line longer than X characters | 行长度超过X个字符(包括空格) |
| Return count is X(max allowed 3) | 一个方法内的返回数量是X(最大值只能为3) |
| Nested if-else depth is X(max allowed is 3) | 最大的if-else嵌套层数为X(最大只能为3) |
| Array brackets at illegal position | 数组的方括号“[]”的位置不正确(检查数组类型的定义是String[] args,而不是String args[]) |
| Line matchs the illegal pattern 'System\.out\.println' | 本行包含System.out.println语句 |
| ctor def modifier at indentation level 8 not at corrent indentation 4 | 缩进不正确,一般是因为没有在Eclipse中使用4个空格代替tab键引起。 |
| 'static' modifier out of order with the JLS suggestions | static修饰符没有按照JLS的建议来排序(eg.写成public final static...应该改成public static final) |
| Name 'X' must match pattern '^[A-Z][A-Z0-9][_A-Z0-9+]$'(正则表达式) | 名称不符合正则表达式'^[A-Z][A-Z0-9][_A-Z0-9+]$'(即为大写字母,数字、下划线等)。 一般在静态变量没有大写时提示,包名不是全部消息时提示,类名不是大写开头时提示,方法名不是小写开头时提示 |
| Variable access definition in wrong order | 变量定义顺序不正确(例如在类成员变量定义时,将private类型的变量定义在public类型的变量之前) |
| Static variable definition in wrong order | 静态变量定义顺序不正确(例如在构造函数之后定义静态变量) |
| Instance variable definition in wrong order | 成员变量定义顺序不正确(例如在构造函数之后定义成员变量) |
| X is a magic number | X是一个魔术数字(非0、1、2的数字) |
| if construct must use '{}' | if结构必须使用'{}' |
| Got an exception - Unexpected character 0xfffd in identifier | 因为没有设置checkstyle配置文件的charset为UTF-8,而类文件使用UTF-8编码,并且含有中文 |
| “{” should be on the previous line | “{” 应该位于前一行 |
| Methods is missing a javadoc comment | 方法前面缺少javadoc注释 |
| Expected @throws tag for “Exception” | 在注释中希望有@throws的说明 |
| “.” Is preceeded with whitespace | “.” 前面不能有空格 |
| “.” Is followed by whitespace | “.” 后面不能有空格 |
| “=” is not preceeded with whitespace“=” | 前面缺少空格 |
| “=” is not followed with whitespace | “=” 后面缺少空格 |
| “}” should be on the same line | “}” 应该与下条语句位于同一行 |
| Unused @param tag for “unused” | 没有参数“unused”,不需注释 |
| Variable “X” missing javadoc | 变量“CA”缺少javadoc注释 |
| Line contains a tab character | 行含有”tab” 字符 |
| Redundant “Public” modifier | 冗余的“public” modifier |
| final modifier out of order with the JSL suggestion | final修饰符的顺序错误 |
| Avoid using the “.*” form of import | Import格式避免使用“.*” |
| Redundant import from the same package | 从同一个包中Import内容 |
| Unused import-X Import | import的X类没有被使用 |
| Duplicate import to line X | 重复Import同一个内容 |
| Import from illegal package | 从非法包中 Import内容 |
| “while” construct must use “{}” | “while” 语句缺少“{}” |
| Variable “X” must be private and have accessor method | 变量“X”应该是private的,并且有调用它的方法 |
| Variable “X” must match pattern “^[a-z][a-zA-Z0-9]*$” | 变量“X”不符合命名规则“^[a-z][a-zA-Z0-9]*$” |
| “(” is followed by whitespace | “(” 后面不能有空格 |
| “)” is proceeded by whitespace | “)” 前面不能有空格 |
更多推荐





所有评论(0)