




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Checkstyle的配置详解 Checkstyle是一款检查java程序代码样式的工具,可以有效的帮助我们检视代码以便更好的遵循代码编写标准,特别适用于小组开发时彼此间的样式规范和统一。Checkstyle提供了高可配置性,以便适用于各种代码规范,所以除了可以使用它提供的sun的代码标准外,你也可以定制自己的标准。我们可以在eclipse中安装checkstyle的插件,来方便我们的使用。 Checkstyle可以让我们养成书写良好代码风格的习惯,代码的整洁也减少了很多bad smell的产生。使用checkstyle的过程中可能需要经常的调整配置文件,有些check过于严格,可以根据实际情况取消一些代码检查。Checkstyle的配置Checkstyle配置是通过指定modules来应用到java文件的。modules是树状结构,以一个名为Checker的module作为root节点,一般的checker都会包括TreeWalker子module。我们可以参照checkstyle中的sun_checks.xml,这是根据sun的java语言规范写的配置。在xml配置文件中通过module的name属性来区分module,module的Properties可以控制如何去执行这个module,每个property都有一个默认值,所有的check都有一个severity属性,用它来指定check的level。TreeWalker为每个java文件创建一个语法树,在节点之间调用submodules的Checks。下面来看看standard checks中的一些具体用法。Javadoc Commentsl JavadocPackage检查每个java package中是否有java注释文件,默认是允许一个package-info.java,也可以通过allowLegacy属性配置允许package.html。l JavadocType检查类和接口的javadoc。默认不检查author 和version tags。l JavadocMethod检查方法和构造函数的javadoc。默认不检查未使用的异常抛出。l JavadocVariable检查变量的javadoc。l JavadocStyle检查javadoc的格式。比如:javadoc的第一行是否以句号结束,javadoc除了tags外是否有description,检查javadoc中的html格式。l WriteTag输出javadoc中的tag。Naming Conventionsl AbstractClassName检查抽象类名。l ClassTypeParameterName检查类的Parameter名。l ConstantName检查常量名。l LocalFinalVariableName检查局部的final类型变量名,包括catch的参数。l LocalVarableName检查局部的非final类型的变量名,包括catch的参数。l MemberName检查非静态变量。l MethodName检查方法名。l MethodTypeParameterName检查方法的参数名。l PackageName检查包名。l ParameterName检查参数名。l StaticVariableName检查静态的,非final类型的变量名。l TypeName检查类名和接口名。Importsl AvoidStarImport检查是否有使用*进行import。l AvoidStaticImport检查是否有静态import。比如是否导入了java.lang包中的内容。l IllegalImport检查是否import了违法的包。默认拒绝import所有sun.*包。l RedundanImport检查是否有重复的import。l UnusedImports检查是否有未使用的import。l ImportOrder检查import的分组和顺序。l ImportControl控制可import的包。在一个较大的project可限制使用过多的第三方包,通过一个依照/dtds/import_control_1_0.dtd的xml文件来指定。Size Violationsl ExecutableStatementCount限制可执行代码片段的长度。默认为30。l FileLength检查java文件的长度。默认为2000。l LineLength检查代码行的长度。默认为80。l MethodLength检查方法和构造函数的长度。默认为150。l AnonInnerLength检查匿名内部类的长度。默认为20。l ParameterNumber检查方法和构造函数的参数个数。默认为7。Whitespacel GenericWhitespace检查周围的空白。l EmptyForInitializerPad检查空的初始化位置的空白。比如for循环中的初始化。l EmptyForIteratorPad检查空的迭代位置的空白。l MethodParamPad检查方法签名之前的空白。l NoWhitespaceAfter检查分隔符后的空白。l NoWhitespaceBefore检查分隔符前的空白。l OperatorWrap检查操作符的空白规则。l ParenPad检查圆括号的空白规则。l TypecaseParenPad检查强制转型的圆括号的空白规则。l TabCharacter检查是否有Tab字符(t)。l WhitespaceAfter检查分隔符是否在空白之后。l WhitespaceAround检查分隔符周围是否有空白。ModifierOrderl ModifierOrder检查修饰符的顺序是否遵照java语言规范。l RedundantModifier检查接口和annotation中是否有重复的修饰符。Block Checksl EmptyBlock检查空的代码块。l LeftCurly检查和左边的代码块是否在同一行。l NeedBraces检查是否需要大括号。主要是在if,else时的情况。l RightCurly检查。l AvoidNestedBlocks检查不需要的嵌套。Codingl ArrayTrailingComma检查数组初始化是否以逗号结束。l AvoidInlineConditionals检查inline的条件操作。l CovariantEquals检查类是否覆盖了equals(java.lang.Object)。l DoubleCheckedLocking检查DCL的问题。l EmptyStatement检查空的代码段。l EqualsAvoidNull检查一个可能为null的字符串是否在equals()比较的左边。l EqualsHashCode检查类是否覆盖了equals()和hashCode()。l FinalLocalVariable检查未改变过的局部变量是否声明为final。l HiddenField检查局部变量或参数是否隐藏了类中的变量。l IllegalInstantiation检查是否使用工厂方法实例化。l IllegalToken检查非法的分隔符。l IllegalTokenText检查非法的分隔符的下个字符。l InnerAssignment检查子表达式中是否有赋值操作。l MagicNumber检查是否有“magic numbers”。l MissingSwitchDefault检查switch语句是否有default的clause。l ModifiedControlVariable检查循环控制的变量是否在代码块中被修改。l RedundantThrows检查是否有被重复抛出的异常。l SimplifyBooleanExpression检查是否有过度复杂的布尔表达式。l SimplifyBooleanReturn检查是否有过于复杂的布尔返回代码段。l StringLiteralEquality检查字符串是否有用= =或!=进行操作。l NestedIfDepth检查嵌套的层次深度。l NestedTryDepth检查try的层次深度。l NoClone检查是否覆盖了clone()。l NoFinalizer检查是否有定义finalize()。l SuperClone检查覆盖的clone()是否有调用super.clone()。l SuperFinalize检查覆盖的finalize()是否有调用super.finalize()。l IllegalCatch检查是否catch了不能接受的错误。l IllegalThrows检查是否抛出了未声明的异常。l PackageDeclaration检查类中是否有声明package。l JUnitTestCase确保setUp(), tearDown()方法签名的正确性。l ReturnCount限制return代码段的数量。l IllegalType检查未使用过的类。l DeclarationOrder检查类和接口中的声明顺序。l ParameterAssignment检查不允许的参数赋值。l ExplicitInitialization检查类和对象成员是否初始化为默认值。l DefaultComesLast检查default的clause是否在switch代码段的最后。l MissingCtor检查类依赖。l FallThrough检查switch代码的case中是否缺少break,return,throw和continue。l MultipleStringLiterals检查一个文件中是否有多次出现的字符串。l MultipleVariableDeclarations检查代码段和代码行中是否有多次变量声明。l RequireThis检查代码中是否有“this.”。l UnnecessaryParentheses检查是否有使用不需要的圆括号。Class Designl VisibilityModifier检查类成员的可见度。l FinalClass检查只有private构造函数的类是否声明为final。l InterfaceIsType检查接口是否仅定义类型。l HideUtilityClassConstructor检查工具类是否有putblic的构造器。l DesignForExension检查类是否为扩展设计。l MutableException确保异常是不可变的。l ThrowsCount限制抛出异常的数量。Duplicate Codel StrictDuplicateCode严格检查重复代码。Miscellaneousl GenericIllegalRegexp正则表达式的模式检查。l NewlineAtEndOfFile检查文件是否以一个空行结束。l TodoComment检查TODO:注释。l Translation检查property文件中是否有相同的key。l UncommentedMain检查是否有未注释的main方法。l UpperEll检查long型约束是否有大写的“L”。l ArrayTypeStyle检查数组类型定义的样式。l FinalParameters检查方法名、构造函数、catch块的参数是否是final的。l Indentation检查代码中正确的缩进。l TrailingComment确保是否要代码行注释。l RequiredRegexp确保一个指定的正则表达式的规则已经存在代码中。Checkstyle常见的错误提示1. Type is missing a javadoc commentClass 缺少类型说明2. “” should be on the previous line“” 应该位于前一行3. Methods is missing a javadoc comment方法前面缺少javadoc注释4. Expected throws tag for “Exception”在注释中希望有throws的说明5. “.” Is preceeded with whitespace “.”前面不能有空格6. “.” Is followed by whitespace“.”后面不能有空格7. “=” is not preceeded with whitespace“=” 前面缺少空格8. “=” is not followed with whitespace “=” 后面缺少空格9. “” should be on the same line “” 应该与下条语句位于同一行10. Unused param tag for “unused”没有参数“unused”,不需注释11. Variable “CA” missing javadoc变量“CA”缺少javadoc注释12. Line longer than 80characters 行长度超过8013. Line contains a tab character行含有”tab” 字符14. Redundant “Public” modifier冗余的“public” modifier15. Final modifier out of order
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 诚信教育与安全
- 《八国联军侵华战争》侵略与反抗课件-5
- 左炔诺孕酮宫内节育系统联合宫腔镜下子宫内膜息肉电切除术对子宫内膜息肉患者子宫内膜厚度及复发情况的影响
- 动物产科学复习题+参考答案
- 71周年国庆节模板
- 2025年教师招聘考试186个教育法律法规知识
- 2025年健康知识竞赛试题(带答案)
- 反恐维稳知识
- 餐厅投资合作协议
- 吉利全民合伙人活动规则
- 钢结构吊装安全专项施工方案
- 2024年欧洲乙虫腈市场主要企业市场占有率及排名
- 医护人员手卫生知识培训课件
- 2025届高考作文写作素材:6月时事热点素材(适用话题+运用示例)
- 《有机化学》课件-电子效应
- QCT457-2023救护车技术规范
- 公对公车辆租赁合同范本
- HYT 262-2018 海水中溶解甲烷的测定 顶空平衡-气相色谱法(正式版)
- 普通植物病理学智慧树知到期末考试答案章节答案2024年东北农业大学
- 人事档案转递通知单
- 《离散数学》试题带答案
评论
0/150
提交评论