做ppt接单的网站,山东省建设执业师网站,长兴建设局网站,山东泰安区号摘要#xff1a;近来项目组在搞代码检查#xff0c;所以领导让把checkstyle这个插件搞明白#xff0c;现在我把我们写的自定义的checkstyle.xml文件记录一下#xff0c;以便大家可以一起使用#xff1a;
一#xff1a;要使用checkstyle插件在eclipse中检查java代码…摘要近来项目组在搞代码检查所以领导让把checkstyle这个插件搞明白现在我把我们写的自定义的checkstyle.xml文件记录一下以便大家可以一起使用
一要使用checkstyle插件在eclipse中检查java代码那必须的先安装eclipse的checkstyle插件如何安装我相信大家知道这里就不多说了
二下面就是自定义的checkstyle.xml文件(这个是核心) ?xml version1.0 encodingUTF-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 nameCheckerproperty nameseverity valueerror/property namecharset valueUTF-8/message keygeneral.exception value有一个异常 - {0} /message keygeneral.fileNotFound value文件没找到!/!--章节2.2A --!-- 不允许使用TAB缩进,此规则必须在TreeWalker标签外 --module nameFileTabCharacterproperty nameseverity valueerror/property nameeachLine valuetrue/message keycontainsTab value本行包含 tab 字符,违反编码规范2.2章节//module!--章节3.1.1 --!-- 检查每个java package中是否有java注释文件默认是允许一个package-info.java也可以通过allowLegacy属性配置允许package.html。此规则必须在TreeWalker标签外 --module nameJavadocPackage /module nameTreeWalkerproperty nameseverity valueerror/ property nametabWidth value4/ message keygeneral.exception value有一个异常 - {0}/ !--章节1.2.2 --!-- 修饰符顺序检测 --module nameModifierOrder message keymod.order value{0} 修饰符顺序错误.违反编码规范1.2.2章节/ message keyannotation.order value{0} 注释修饰符不能在非注释修饰符前面./ /module!--章节2.2B -- !-- 缩进风格--module nameIndentationproperty nameseverity valueerror/property namebasicOffset value4/message keyindentation.error value你缩进了{1}个空格正确应该缩进 {2}个空格违反编码规范2.2章节/!-- 子级缩进 --message keyindentation.child.error value你缩进了{1}个空格正确应该缩进 {2}个空格违反编码规范2.2章节//module!--章节2.3 --!-- 页宽--module nameLineLength property namemax value80/ message keymaxLineLen value行字符数超过80个.违反编码规范2.3章节/ /module !--章节2.4 --!--操作符换行策略检查--module nameOperatorWrapproperty nameseverity valueerror/property nameoption valuenl/property nametokens valueASSIGN,BAND,BOR,DIV,EQUAL,GE,GT,LAND,LE,LOR,LT,MINUS_ASSIGN,MOD,MOD_ASSIGN,NOT_EQUAL,PLUS,PLUS_ASSIGN,QUESTION,STAR,STAR_ASSIGN/message keyline.after value{0}没有放在新行之首违反编码规范2.4章节//module !--章节2.6 --module nameParenPadproperty nameseverity valueerror/property nametokens valueLPAREN,RPAREN,CTOR_CALL,METHOD_CALL,SUPER_CTOR_CALL/message keyws.followed value{0} 后面有空格违反编码规范2.6章节/message keyws.preceded value{0}前面有空格违反编码规范2.6章节//module module nameTypecastParenPadproperty nameseverity valueerror/property nametokens valueRPAREN,TYPECAST/message keyws.followed value{0}后面多一个空格违反编码规范2.6章节/message keyws.preceded value{0}前面多一个空格违反编码规范2.6章节//module module nameWhitespaceAfterproperty nameseverity valueerror/property nametokens valueCOMMA,SEMI/message keyws.notFollowed value{0}后面多一个空格违反编码规范2.6章节//module module nameWhitespaceAroundproperty nameseverity valueerror/property nametokens valueRCURLY,LITERAL_ASSERT,LITERAL_ASSERT,LITERAL_CATCH,LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,LITERAL_RETURN,LITERAL_SYNCHRONIZED,LITERAL_TRY,LITERAL_WHILE/property nameallowEmptyConstructors valuetrue/property nameallowEmptyMethods valuetrue/message keyws.notPreceded value{0} 关键字前少一个空格违反编码规范2.6章节/message keyws.notFollowed value{0} 关键字后少一个空格违反编码规范2.6章节//module!--章节2.7 --!-- 每行语句数量--module nameOneStatementPerLine!--模块的元数据类型设置经过测试发现该标签没用--metadata namenet.sf.eclipsecs.core.comment valueCoding Problems- Only one statement per line allowed /message keymultiple.statements.line value禁止一行有多句代码违反编码规范2.7章节 //module!--章节2.8 --!-- 每行变量声明数量--module nameMultipleVariableDeclarations property nameseverity valueerror/ message keymultiple.variable.declarations.comma value每一个变量的定义必须在它的声明处且在同一行违反编码规范2.8章节/ message keymultiple.variable.declarations value每一行只能定义一个变量违反编码规范2.8章节/ /module !--章节2.9.1 --!-- Checks the placement of right curly braces (}) for else, try, and catch tokens. The policy to verify is specified using property option. option: 右大括号是否单独一行显示 tokens: 定义检查的类型 -- module nameRightCurly property nameoption valuealone/ property nameseverity valueerror/ /module !--章节2.9.1 -- !-- 检查左侧大括号 左侧大括号必须放在前一行代码的行尾 --module nameLeftCurlyproperty nameseverity valueerror/message keyline.previous value左侧大括号没有放在前一行代码的行尾违反编码规范2.9.1章节//module !--章节2.9.2 --!-- 检查代码块是否缺失大括号--module nameNeedBraces message keyneedBraces value{0} 结构没有用大括号 {}s违反编码规范2.9.2章节/ /module !-- 章节3.2 --!-- 对文件头的注释进行检查 --!--章节3.3 --!--对类和接口的javadoc注释进行检查--module nameJavadocTypeproperty nameseverity valueerror/message keytype.missingTag valueJavadoc 类型的注释丢失 {0} 标签.违反编码规范3.3章节/message keyjavadoc.missing value缺少 Javadoc 注释.违反编码规范3.3章节/message keyjavadoc.unusedTagGeneral value未使用过的 Javadoc 标签.违反编码规范3.23章节/message keyjavadoc.unusedTag value未使用过的 {0} 标签for {1}.违反编码规范3.3章节/message keytype.tagFormat valueJavadoc 类型标签 {0}必须匹配模式 {1}.违反编码规范3.3章节//module!--章节3.43.7 -- !--public protect private变量的注释进行检查--module nameJavadocVariableproperty nameseverity valueerror/property namescope valuepublic/message keyjavadoc.missing value变量注释缺少Javadoc注释,违反编码规范3.4章节//module module nameJavadocVariableproperty nameseverity valueerror/property namescope valueprotected/message keyjavadoc.missing value变量注释缺少Javadoc注释,违反编码规范3.4章节//module module nameJavadocVariableproperty nameseverity valueerror/message keyjavadoc.missing value变量注释缺少Javadoc注释,违反编码规范3.4章节//module !--章节3.5 --!-- 检查所有方法的javadoc可以不声明RuntimeException --module nameJavadocMethodproperty nameallowUndeclaredRTE valuetrue/!--允许get set 方法没有注释--property nameallowMissingPropertyJavadoc valuetrue/message keyjavadoc.missing value方法注释缺少Javadoc注释违反编码规范3.5章节//module !-- 命名规范 --!--章节4.2 --!-- 包名命名规范 --module namePackageName !-- property nameformat value^[a-z](\.[a-z][a-z0-9]*)*$/ -- property nameformat value^org\.neris\.[a-z](\.[a-z])$/ message keyname.invalidPattern value包名 {0} 不符合org.neris.项目名.模块名违反编码规范4.2章节/ /module !--章节4.3,4.4 --!-- 类的命名,匹配规则默认:(^[A-Z][a-zA-Z0-9]*$),必须以大写字母开始 --module nameTypeName property nametokens valueCLASS_DEF/message keyname.invalidPattern value类名 {0}没有通过大驼峰命名法命名具体名称应使用意义完整的英文描述违反编码规范4.3章节/ /module !-- 接口命名,匹配规则默认:(^[A-Z][a-zA-Z0-9]*$),必须以大写字母开始 --module nameTypeName property nametokens valueINTERFACE_DEF/message keyname.invalidPattern value接口名 {0}没有通过大驼峰命名法命名具体名称应使用意义完整的英文描述违反编码规范4.3章节/ /module!--章节4.6 --!-- 方法名命名 -- module nameMethodName property nameseverity valueerror/ property nameformat value(^[a-z][a-zA-Z0-9]*$)/ message keyname.invalidPattern value方法名 {0}没有通过小驼峰命名法命名具体名称应使用意义完整的英文描述.违反编码规范4.6章节/ /module !--章节4.7 --!-- 局部变量命名 --module nameLocalVariableName property nameformat value(^[a-z][a-zA-Z0-9]*$)/ message keyname.invalidPattern value变量名 {0}没有通过小驼峰命名法命名具体名称应使用意义完整的英文描述.违反编码规范4.7章节/ /module !-- 局部的final变量包括catch中的参数的检查 -- module nameLocalFinalVariableName property nameseverity valueerror/message keyname.invalidPattern value变量名 {0}没有通过小驼峰命名法命名具体名称应使用意义完整的英文描述.违反编码规范4.7章节//module!-- 变量命名 --module nameMemberName message keyname.invalidPattern value变量名 {0}没有通过小驼峰命名法命名具体名称应使用意义完整的英文描述.违反编码规范4.7章节/ /module !-- 静态变量命名 --module nameStaticVariableNamemessage keyname.invalidPattern value变量名 {0}没有通过小驼峰命名法命名具体名称应使用意义完整的英文描述.违反编码规范4.7章节//module!-- 数组变量命名 --module nameArrayTypeStyleproperty nameseverity valueerror/message keyarray.type.style value数组定义没有采取int[] index这种方式违反编码规范4.7.2章节//module !--章节4.8 --!-- 常量命名--module nameConstantNameproperty nameseverity valueerror/message keyname.invalidPattern value常量 {0} 常量名违反编码规范4.8章节.//module!--章节5.1 --!-- import语句不使用通配符 --module nameAvoidStarImportproperty nameseverity valueerror/message keyimport.avoidStar value引用包时不能使用*号.违反编码规范5.1章节//module !--章节5.2 --!-- 魔法数检测--module nameMagicNumber property nameseverity valueerror/ message keymagic.number value{0} 是一个魔法数(即常数).违反编码规范5.2章节/ /module!--章节5.4 --!-- 多余的关键字包含不适用this作为关键字 -- module nameRedundantModifier message keyredundantModifier value{0} 多余的修饰符.违反编码规范5.4章节/ /module !--章节5.5 --!-- 重载父类方法 --module nameMissingOverride message keyannotation.missing.override value重载方法缺少Override违反编码规范5.5章节 /message keytag.not.valid.on value注释- Javadoc {0}标签在这个位置是无效的. //module !--章节5.6 --!--判断语句使用 --module nameSimplifyBooleanExpressionproperty nameseverity valueerror/message keysimplify.expression value存在布尔冗余违法编码规范5.6章节.//module!--章节5.7 --!-- 检查switch语句是否忘记了default标签 --module nameMissingSwitchDefault property nameseverity valueerror/message keymissing.switch.default valueswitch 语句后边没有 default 语句.违法编码规范5.7章节//module!-- 检查switch语句中default标签的顺序 --module nameDefaultComesLastproperty nameseverity valueerror/message keydefault.comes.last value建议Default 放在 switch 语句的最后.//module !--章节5.9 --!-- 禁止使用System.out.println --module nameRegexpproperty nameformat valueSystem\.out\.println/ property namemessage value不要使用 System.out 与 System.out 进行控制台打印应该使用日志工具类(如log4j)进行统一记录或者打印违法编码规范5.9章节/ property nameillegalPattern valuetrue//module!-- 禁止使用System.err.println --module nameRegexpproperty nameformat valueSystem\.err\.println/ property namemessage value不要使用 System.out 与 System.err 进行控制台打印应该使用日志工具类(如log4j)进行统一记录或者打印违法编码规范5.9章节/ property nameillegalPattern valuetrue//module !--章节5.10 --!-- 不允许用main方法测试--module nameUncommentedMain/module!--章节5.11 --!-- NeedBraces 检查是否应该使用括号的地方没有加括号 tokens: 定义检查的类型 -- module nameNeedBraces/ /module /module三安装好eclipse的checkstyle插件后你就可以把checkstyle.xml文件添加进去如何添加网上有很多文档