checkstyle使用介绍

1、我下载的是checkstyle-5.5-bin.zip;下载地址

http://sourceforge.net/projects/checkstyle/files/

另一个是checkstyle的eclipse插件:net.sf.eclipsecs-updatesite_5.5.0.201111092104-bin.zip

下载地址:http://sourceforge.net/projects/eclipse-cs/?source=directory

2、下面我以介绍安装插件的checkstyle开始

1、打开eclipse

2、在help中选择install software

3、add 选择中刚才net.sf.eclipsecs-updatesite_5.5.0.201111092104-bin.zip

4、点击下一步

5、重启一下

3、打开eclipse,选择window->preferences->左边导航栏中Checkstyle,如果出现checkstyle说明你安装成功

4、然后你new一个

选择type:External configuration file

Name: 自己起一个名称

Location: 你自己配置的规则 我的叫做checkstyle.xml

点击确定

5、在你的项目,右键选择properties 找到checkstyle

选择你刚才自己配置的名称,并应用上即可

6、具体的配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

<!--
    This configuration file was written by the eclipse-cs plugin configuration editor
-->
<!--
    Checkstyle-Configuration: check
    Description: none
-->
<module name="Checker">
  <property name="severity" value="error"/>
  <property name="charset" value="UTF-8"/>
  <message key="general.exception" value="有一个异常 - {0}"/>
  <message key="general.fileNotFound" value="文件没找到!"/>
  <module name="TreeWalker">
    <property name="severity" value="error"/>
    <property name="tabWidth" value="4"/>
    <message key="general.exception" value="有一个异常 - {0}"/>
    <module name="PackageName">
      <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
      <message key="name.invalidPattern" value="包名 ''{0}'' 必须符合正则表达式 ''{1}''."/>
    </module>
    <module name="TypeName">
      <message key="name.invalidPattern" value="名称 ''{0}'' 必须符合正则表达式 ''{1}''."/>
    </module>
    <module name="MethodName">
      <property name="severity" value="warning"/>
      <property name="format" value="(^[a-z][a-zA-Z0-9]{0,14}$)"/>
      <message key="name.invalidPattern" value="名称 ''{0}''必须符合以下正则表达式 ''{1}''."/>
      <message key="method.name.equals.class.name" value="名称 ''{0}'' 不能与内部类名称相同."/>
    </module>
    <module name="MemberName">
      <message key="name.invalidPattern" value="名称 ''{0}'' 必须符合正则表达式 ''{1}''."/>
    </module>
    <module name="Indentation">
      <message key="indentation.error" value="{0} 代码缩进 {1} 不正确, {2}"/>
      <message key="indentation.child.error" value="{0} 子功能代码缩进 {1} 不正确, {2}"/>
    </module>
    <module name="RedundantThrows">
      <property name="severity" value="warning"/>
      <message key="redundant.throws.classInfo" value="没办法获得类信息 {0}."/>
      <message key="redundant.throws.duplicate" value="冗余的 throws: ''{0}'' 使用了多次."/>
      <message key="redundant.throws.subclass" value="冗余的 throws: ''{0}'' 是 ''{1}''的子类."/>
      <message key="redundant.throws.unchecked" value="冗余的 throws: ''{0}'' 是运行时的异常."/>
    </module>
    <module name="MultipleVariableDeclarations">
      <property name="severity" value="warning"/>
      <message key="multiple.variable.declarations.comma" value="每一个变量的定义必须在它的声明处,且在同一行."/>
      <message key="multiple.variable.declarations" value="每一行只能定义一个变量."/>
    </module>
    <module name="UpperEll">
      <message key="upperEll" value="必须使用大写字母 ''L''."/>
    </module>
    <module name="ArrayTypeStyle">
      <message key="array.type.style" value="数组中括号位置不对,建议如:String[] args."/>
    </module>
    <module name="ConstantName">
      <message key="name.invalidPattern" value="名称 ''{0}'' 必须符合正则表达式 ''{1}''."/>
    </module>
    <module name="MagicNumber">
      <property name="severity" value="warning"/>
      <message key="magic.number" value="''{0}'' 是一个魔法数(即常数)."/>
    </module>
    <module name="NeedBraces">
      <message key="needBraces" value="''{0}'' 结构必须要用大括号 '''{}'''s."/>
    </module>
    <module name="AvoidInlineConditionals">
      <property name="severity" value="warning"/>
      <message key="inline.conditional.avoid" value="避免内部条件语句,不易于代码阅读."/>
    </module>
    <module name="EmptyStatement">
      <message key="empty.statement" value="空代码块."/>
    </module>
    <module name="ModifiedControlVariable"/>
    <module name="ParameterNumber">
      <property name="severity" value="warning"/>
      <property name="max" value="5"/>
      <property name="tokens" value="METHOD_DEF"/>
      <message key="maxParam" value="超过 {0,number,integer} 参数."/>
    </module>
    <module name="JavadocType">
      <property name="authorFormat" value="\S"/>
      <message key="type.missingTag" value="注解缺少 {0} tag."/>
      <message key="javadoc.missing" value="缺少注解"/>
      <message key="javadoc.unusedTagGeneral" value="不使用的注解tag"/>
      <message key="type.tagFormat" value="注解tag {0} 必须符合正则表达式 ''{1}''."/>
    </module>
    <module name="ParameterName">
      <message key="name.invalidPattern" value="名称 ''{0}'' 必须符合正则表达式 ''{1}''."/>
    </module>
    <module name="UnusedImports">
      <message key="import.unused" value="没被使用过 import - {0}."/>
    </module>
    <module name="LineLength">
      <property name="max" value="120"/>
      <message key="maxLineLen" value="行字符数超过 {0,number,integer} 个."/>
    </module>
    <module name="MethodLength">
      <property name="max" value="40"/>
      <property name="tokens" value="METHOD_DEF"/>
      <message key="maxLen.method" value="方法长度 {0,number,integer} 行 (最大允许行数为 {1,number,integer})."/>
    </module>

    
    <module name="MethodParamPad"/>
    <module name="ModifierOrder">
      <message key="mod.order" value="''{0}'' 修饰符没有按照 JLS 的建议顺序."/>
      <message key="annotation.order" value="''{0}'' 注释修饰符不能在非注释修饰符前面."/>
    </module>
    <module name="RedundantModifier">
      <message key="redundantModifier" value="冗余 ''{0}'' 修饰符."/>
    </module>
    <module name="AvoidNestedBlocks">
      <property name="severity" value="warning"/>
      <property name="allowInSwitchCase" value="true"/>
      <message key="block.nested" value="避免代码块的嵌套"/>
    </module>
    <module name="StringLiteralEquality">
      <message key="string.literal.equality" value="字符串比较必须使用 equals(), 而不是 ''{0}''."/>
    </module>
    <module name="NestedIfDepth">
      <property name="severity" value="warning"/>
      <property name="max" value="3"/>
      <message key="nested.if.depth" value="if-else嵌套语句个数为 {0,number,integer} (最大允许嵌套语句个数为: {1,number,integer})."/>
    </module>
    <module name="NestedTryDepth">
      <property name="max" value="2"/>
    </module>
    <module name="SuperClone">
      <message key="missing.super.call" value="方法 ''{0}'' 需要调用 ''super.{0}''."/>
    </module>
    <module name="SuperFinalize">
      <message key="missing.super.call" value="方法 ''{0}'' 需要调用 ''super.{0}''."/>
    </module>
    <module name="IllegalCatch">
      <property name="illegalClassNames" value="java.lang.Exception"/>
      <message key="illegal.catch" value="Catching ''{0}'' 是不允许的."/>
    </module>
    <module name="PackageDeclaration">
      <message key="missing.package.declaration" value="缺少包的定义."/>
      <message key="package.dir.mismatch" value="包定义与目录名不匹配 ''{0}''."/>
    </module>
    <module name="ReturnCount">
      <property name="severity" value="warning"/>
      <property name="max" value="3"/>
      <property name="format" value="^$"/>
      <message key="return.count" value="Return 个数 {0,number,integer} (最大允许个数为: {1,number,integer})."/>
    </module>
    <module name="ParameterAssignment">
      <message key="parameter.assignment" value="参数赋值 ''{0}'' 是不允许的."/>
    </module>
    <module name="MultipleStringLiterals">
      <property name="severity" value="warning"/>
    </module>
    <module name="UnnecessaryParentheses"/>
    <module name="JavadocMethod">
      <property name="suppressLoadErrors" value="true"/>
    </module>
  </module>
  <module name="StrictDuplicateCode">
    <property name="min" value="8"/>
    <message key="duplicates.lines" value="从第 {2}开始,有{0}行相同代码 与 {1}中重复."/>
  </module>
  <module name="FileLength">
    <property name="severity" value="warning"/>
    <property name="max" value="1500"/>
    <message key="maxLen.file" value="文件 {0,number,integer} 行 (最大行数为: {1,number,integer})."/>
  </module>
  <module name="Translation">
    <message key="translation.missingKey" value="关键字 ''{0}'' 没找到."/>
  </module>
</module>
 

 

这里面你可以自己写一个类。。。


<!--[endif]-->

你可能感兴趣的:(checkstyle使用介绍)