checkStyle使用详解
2015-06-29 09:01
686 查看
简介
checkStyle是一款代码格式检查工具,它根据设置好的编码规则来自动检查代码。比如命名规范,文件长度,代码行长度等等。代码检查工具是保证项目代码质量、统一编码风格的一种重要途径。本篇博客主要讲讲使用checkStyle的检查规则的陪置。安装
方法一:
Eclipse中,选择Help->Software Updates->Find and Install选择 Search for new features to install 选择Next
选择 New Remote Site
输入更新地址:http://eclipse-cs.sourceforge.net/update
安装后重启即可
方法二:
1.下载eclipse插件:http://sourceforge.net/projects/eclipse-cs/下载后,把里面的两个文件夹plugins和 features下面的文件分别拷贝到eclipse目录下面对应的plugins和features目录
2.如果你就这样直接启动eclipse 可能会出现ClassNotFoundExceptions 等错误,所以必须在启动eclipse的时候加上一个参数 -clean. 这样eclipse就可以更新它当前安装的许多插件信息
比如你得eclipse在d盘 那么就是 d:\eclipse\eclipse.exe -clean
Checkstyle的陪置文件导入
点击“Window”->“Preferences”菜单,在弹出窗口左侧点击“Checkstyle”,可看到右侧默认选中的是“Sun Checks”检查规则,因为该规则要求比较严格,而且不适合本研发中心,所以需要自定义检查文件。点击“New”按钮后,弹出“Check Configuration Properties”窗口,如下图所示:在上图中选择“Type”为“External Configuration File”(外部配置文件),在“Location”行点击“Browse”按钮浏览选择checkstyle的配置文件,例如eclipse_checkstyle.xml文件(仅供参考,可自行定义),并输入“Name”行的值,例如“eclipse_checkstyle”,点击“OK”按钮完成导入操作。回到Checkstyle主页面选择刚才添加的文件,点击“Set As Default”将其设置为默认checkstyle检查文件。
陪置详解
<module name="Checker"> <!-- 消息提示等级 --> <property name="severity" value="warning"/> <!-- 字符集限制 --> <property name="charset" value="UTF-8"/> <module name="TreeWalker"> <!-- javadoc的检查 --> <!-- 检查所有的interface和class --> <module name="JavadocType"/> <!-- 检查所有方法的javadoc,可以不声明RuntimeException --> <module name="JavadocMethod"> <property name="allowUndeclaredRTE" value="true"/> <property name="allowMissingPropertyJavadoc" value="true"/> </module> <!-- 检查变量的javadoc --> <module name="JavadocVariable"> <property name="scope" value="public"/> </module> <!-- 命名方面的检查,它们都使用了Sun官方定的规则。 --> <!-- 类名(class 或interface) 的检查 --> <module name="TypeName"/> <!-- 变量的检查 --> <module name="MemberName"/> <!-- 方法名的检查 --> <module name="MethodName"/> <!-- 方法的参数名 --> <module name="ParameterName "/> <!-- 常量名的检查 --> <module name="ConstantName"/> <!-- 长度方面的检查 --> <!-- 文件长度不超过1500行 --> <!-- 每行不超过120个字--> <module name="LineLength"> <property name="max" value="120"/> </module> <!-- 方法不超过30行 --> <module name="MethodLength"> <property name="tokens" value="METHOD_DEF"/> <property name="max" value="30"/> </module> <!-- 方法的参数个数不超过3个。 --> <module name="ParameterNumber"> <property name="max" value="3"/> </module> <!-- 多余的关键字 --> <module name="RedundantModifier"/> <!-- 对区域的检查 --> <!-- 不能出现空白区域 --> <module name="EmptyBlock"/> <!-- 所有区域都要使用大括号。 --> <module name="NeedBraces"/> <!-- 多余的括号 --> <module name="AvoidNestedBlocks"> <property name= "allowInSwitchCase" value="true"/> </module> <!-- 编码方面的检查 --> <!-- 不许出现空语句 --> <module name="EmptyStatement"/> <!-- 每个类都实现了equals()和hashCode() --> <module name="EqualsHashCode"/> <!-- 不许使用switch --> <module name="IllegalToken"> <property name="tokens" value="LITERAL_SWITCH"/> </module> <!-- 不许内部赋值 --> <module name="InnerAssignment"/> <!-- 绝对不能容忍魔法数 --> <module name="MagicNumber"/> <!-- 循环控制变量不能被修改 --> <module name="ModifiedControlVariable"/> <!-- 多余的throw --> <!-- <module name="RedundantThrows"/> --> <!-- 不许使用未被简化的条件表达式 --> <module name="SimplifyBooleanExpression"/> <!-- 不许使用未被简化的布尔返回值 --> <module name="SimplifyBooleanReturn"/> <!-- String的比较不能用!= 和 == --> <module name="StringLiteralEquality"/> <!-- if最多嵌套3层 --> <module name="NestedIfDepth"> <property name="max" value="3"/> </module> <!-- try最多被嵌套1层 --> <module name="NestedTryDepth"/> <!-- clone方法必须调用了super.clone() --> <module name="SuperClone"/> <!-- finalize 必须调用了super.finalize() --> <module name="SuperFinalize"/> <!-- 不能catch java.lang.Exception --> <module name="IllegalCatch"> <property name="illegalClassNames" value="java.lang.Exception"/> </module> <!-- JUnitTestCase 的核心方法存在。 --> <!-- <module name="JUnitTestCase"/> --> <!-- 一个方法中最多有3个return --> <module name="ReturnCount"> <property name="max" value="3"/> </module> <!-- 不许对方法的参数赋值 --> <module name="ParameterAssignment"/> <!-- 不许有同样内容的String --> <module name="MultipleStringLiterals"/> <!-- 同一行不能有多个声明 --> <module name="MultipleVariableDeclarations"/> <!-- 各种量度 --> <!-- 布尔表达式的复杂度,不超过3 --> <module name="BooleanExpressionComplexity"/> <!-- 类数据的抽象耦合,不超过7 --> <module name="ClassDataAbstractionCoupling"/> <!-- 类的分散复杂度,不超过20 --> <module name="ClassFanOutComplexity"/> <!-- 函数的分支复杂度,不超过10 --> <module name="CyclomaticComplexity"/> <!-- NPath复杂度,不超过200 --> <module name="NPathComplexity"/> <!-- 杂项 --> <!-- 禁止使用System.out.println --> <!-- <module name="GenericIllegalRegexp"> <property name="format" value="System\.out\.println"/> <property name="ignoreComments" value="true"/> </module> --> <!-- 不许使用与代码同行的注释 --> <module name="TrailingComment"/> <!-- 不允许存在todo标签 --> <module name="TodoComment"> <property name="severity" value="warning"/> <property name="format" value="TODO"/> </module> </module> <module name="FileLength"> <property name="max" value="1500"/> </module> <!-- 检查翻译文件 --> <module name="Translation"/> </module>
小结:这里也就是陪置文件中的陪置项需要有一点了解,些小的错误都会导致文件陪置文件无法导入成功。
相关文章推荐
- .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB
- Failed to locate: "CL.exe". The system cannot find the file specified.
- 实习日志1---MyEclipse与MySql的链接,数据库的创建
- 数据库系统模式和模型详解
- Effective C++ 条款26
- 详细记录一下JAVA应用程序服务出现内存溢出的利用MAT分析过程
- 《Java程序设计》第16周周四:GUI编程及文件对话框的使用(项目二)
- .NET平台开源项目速览(2)Compare .NET Objects对象比较组件
- dos文件操作命令
- logcat
- compute和compute by
- 三個使用版本控制系統的建議
- 使用Micrisoft.net设计方案 第三章Web表示模式 Web模式集群详细介绍 Observer(观察器)
- TFS2010 创建项目时提示“未能解析远程主机”的解决办法
- MySQL的锁机制
- [LeetCode] Merge k Sorted Lists 合并k个有序链表
- .NET平台开源项目速览(1)SharpConfig配置文件读写组件
- 河广
- 洛谷1067 多项式输出
- HttpClient4.3 第二次封装