一、CheckStyle简介

CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要但是枯燥的任务中解脱出来。

CheckStyle检验的主要内容为:

  • Javadoc注释

  • 命名约定

  • 标题

  • Import语句

  • 体积大小

  • 空白

  • 修饰符

  • 代码问题

  • 类设计

  • 混合检查(包括一些有用的比如非必须的System.out和printstackTrace)

二、CheckStyle配置教程

checkstyle配置有两种方式,第一种为安装插件,第二种为添加依赖,推荐使用第二种。

(一)安装插件方式

1、安装CheckStyle-IDEA插件,安装好后重启idea;

2、给CheckStyle插件配置checkstyle.xml文件;
checkstyle.xml代码:

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC  "-//Puppy Crawl//DTD Check Configuration 1.3//EN""http://checkstyle.sourceforge.net/dtds/configuration_1_3.dtd"><module name="Checker"><property name="charset" value="UTF-8"/><property name="fileExtensions" value="java"/><!-- 文件长度不超过1500行 --><module name="FileLength"><property name="max" value="1500"/></module><!-- TreeWalker Checks --><module name="TreeWalker"><module name="SuppressWarningsHolder"/><!--避免转义unicode字符--><module name="AvoidEscapedUnicodeCharacters"><property name="allowEscapesForControlCharacters" value="true"/><property name="allowByTailComment" value="true"/><property name="allowNonPrintableEscapes" value="true"/></module><module name="NoLineWrap"/><module name="OuterTypeFilename"/><!-- import检查--><!-- 检查是否从非法的包中导入了类 --><module name="IllegalImport"/><!-- 检查是否导入了多余的包 --><module name="RedundantImport"/><!-- 没用的import检查,比如:1.没有被用到2.重复的3.import java.lang的4.import 与该类在同一个package的 --><module name="UnusedImports"/><!-- 注释检查 --><!-- 检查方法和构造函数的javadoc --><module name="JavadocType"><property name="allowUnknownTags" value="true"/><message key="javadoc.missing" value="类注释:缺少Javadoc注释。"/></module><!-- 检查方法的javadoc --><module name="JavadocMethod"><property name="allowedAnnotations" value="Override, Test"/><property name="tokens" value="METHOD_DEF, ANNOTATION_FIELD_DEF "/><message key="javadoc.missing" value="方法注释:缺少Javadoc注释。"/></module><!-- 检查方法的javadoc是否缺失--><module name="MissingJavadocMethod"><property name="tokens" value="METHOD_DEF, ANNOTATION_FIELD_DEF "/></module><!-- 检查类型的javadoc是否缺失--><module name="MissingJavadocType"/><module name="RequireEmptyLineBeforeBlockTagGroup"/><module name="AtclauseOrder"><property name="tagOrder" value="@param, @return, @throws, @deprecated"/><property name="target"value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/></module><!-- 方法名的检查 --><module name="MethodName"><property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/><message key="name.invalidPattern"value="Method name ''{0}'' must match pattern ''{1}''."/></module><!-- 方法的参数名 --><module name="ParameterName"/><!-- 常量名的检查(只允许大写),默认^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$ --><module name="ConstantName"/><!-- 检查long型定义是否有大写的“L” --><module name="UpperEll"/><!-- 检查switch语句是否有default --><module name="MissingSwitchDefault"/><!-- 语法 --><!-- String的比较不能用!= 和 == --><module name="StringLiteralEquality"/><!-- 禁止使用System.out.println --><module name="Regexp"><property name="format" value="System\.out\.println"/><property name="illegalPattern" value="true"/></module><!--重载方法申明顺序--><module name="OverloadMethodsDeclarationOrder"/><!--变量声明和第一次使用之间的距离--><module name="VariableDeclarationUsageDistance"/><!--方法参数之间的空格--><module name="MethodParamPad"><property name="tokens"value="CTOR_DEF, LITERAL_NEW, METHOD_CALL, METHOD_DEF,SUPER_CTOR_CALL, ENUM_CONSTANT_DEF, RECORD_DEF"/></module><!--符号面前不允许空格--><module name="NoWhitespaceBefore"><property name="tokens"value="COMMA, SEMI, POST_INC, POST_DEC, DOT,LABELED_STAT, METHOD_REF"/><property name="allowLineBreaks" value="true"/></module><!--括号填充的空格--><module name="ParenPad"><property name="tokens"value="ANNOTATION, ANNOTATION_FIELD_DEF, CTOR_CALL, CTOR_DEF, DOT, ENUM_CONSTANT_DEF,EXPR, LITERAL_CATCH, LITERAL_DO, LITERAL_FOR, LITERAL_IF, LITERAL_NEW,LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_WHILE, METHOD_CALL,METHOD_DEF, QUESTION, RESOURCE_SPECIFICATION, SUPER_CTOR_CALL, LAMBDA,RECORD_DEF"/></module><!--运算符前的空格--><module name="OperatorWrap"><property name="option" value="NL"/><property name="tokens"value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR,LT, MINUS, MOD, NOT_EQUAL, QUESTION, SL, SR, STAR, METHOD_REF,TYPE_EXTENSION_AND "/></module><!--注解位置--><module name="AnnotationLocation"><property name="id" value="AnnotationLocationMostCases"/><property name="tokens"value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF,RECORD_DEF, COMPACT_CTOR_DEF"/></module><!--注解位置--><module name="AnnotationLocation"><property name="id" value="AnnotationLocationVariables"/><property name="tokens" value="VARIABLE_DEF"/><property name="allowSamelineMultipleAnnotations" value="true"/></module><!--        --><module name="NonEmptyAtclauseDescription"/><module name="InvalidJavadocPosition"/><module name="JavadocTagContinuationIndentation"/><!--命名校验--><module name="AbbreviationAsWordInName"><property name="ignoreStatic" value="false"/><property name="allowedAbbreviationLength" value="1"/><property name="allowedAbbreviations" value="XML,URL,TRS,VO,DTO,PKI,MAC,IMEI,IMSI"/></module><module name="LocalVariableName"><property name="format"value="^[a-z][a-z0-9]*([A-Z][a-z0-9]+)*(DO|DTO|VO|DAO|BO|DOList|DTOList|VOList|DAOList|BOList|X|Y|Z|UDF|UDAF|[A-Z])?$"/><property name="allowOneCharVarInForLoop" value="true"/><message key="name.invalidPattern" value="局部变量命名 ''{0}'' 不满足lowerCaseCamel命名规范"/></module><module name="MemberName"><property name="format"value="^[a-z][a-z0-9]*([A-Z][a-z0-9]+)*(DO|DTO|VO|DAO|BO|DOList|DTOList|VOList|DAOList|BOList|X|Y|Z|UDF|UDAF|[A-Z])?$"/><message key="name.invalidPattern" value="成员变量命名 ''{0}'' 不满足lowerCaseCamel命名规范"/></module><module name="MethodName"><message key="name.invalidPattern" value="方法命名 ''{0}'' 不满足lowerCaseCamel命名规范"/></module><module name="PackageName"><message key="name.invalidPattern" value="包命名 ''{0}'' 不满足命名规范"/></module><module name="ParameterName"><message key="name.invalidPattern" value="方法传参命名 ''{0}'' 不满足lowerCaseCamel命名规范"/></module></module>
</module>

点击加号,导入checkstyle.xml;

3、点击apply,点击ok;

4、点击选择刚才导入的checkstyle;

5、分别对类、包、项目进行检查可以发现代码中不规范的地方;

6、若无问题则显示Checkstyle found no promblems in the file(s);

此插件配置可以在自己练习时使用,不过与插件检测与maven检测有差异,推荐使用maven编译检测。

(二)添加依赖方式

1、将checkstyle.xml文件放在项目根目录下(或新建codestyle文件夹放里面);

2、在pom.xml中添加checkstyle依赖;

<!--检查代码编码规范,不符合规范将无法打包-->
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-checkstyle-plugin</artifactId><version>3.1.2</version><dependencies><dependency><groupId>com.puppycrawl.tools</groupId><artifactId>checkstyle</artifactId><!-- 上线项目中可能会换为${maven-checkstyle-plugin-version}--><version>8.36.2</version></dependency></dependencies><executions><execution><id>checkstyle-validation</id><phase>compile</phase><configuration><!-- 此处是checkstyle.xml文件放置位置,可根据实际位置进行修改--><configLocation>checkstyle.xml</configLocation><encoding>UTF-8</encoding><consoleOutput>true</consoleOutput><failOnViolation>true</failOnViolation></configuration><goals><goal>check</goal></goals></execution></executions>
</plugin>

3、项目写完后点击maven,点击compile编译项目;

4、查看编译信息,可以看到检查出来的问题;

5、根据提示对代码进行修改,直到检测出来所有代码没有问题。

Idea如何配置CheckStyle相关推荐

  1. 在Eclipse中配置CheckStyle

    1. 安装CheckStyle 打开eclipse>>Help>>Eclipse Marketplace.在search中输入CheckStyle,找到对应的文件,点击inst ...

  2. idea,配置checkstyle 【提高代码质量,检查代码规范的工具 】Checkstyle,FindBugs,PMD,Jtest

    idea,配置checkstyle [提高代码质量,检查代码规范的工具 ]Checkstyle,FindBugs,PMD,Jtest 2016年12月15日 14:19:02 common_util ...

  3. IDEA : 配置checkstyle

    1.美图 2.概述 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的 ...

  4. idea 配置checkstyle【提高代码质量,检查代码规范的工具】

    下面主要介绍IDEA,如何配置,使用checkstyle 1.CheckStyle插件安装和使用 一,打开settings的plugins,点击查找CheckStyle-IDEA安装,如果查找不到,B ...

  5. android studio checkstyle插件,Android Studio配置CheckStyle

    概述 在开发中,我们需要不仅仅是个人的超强的能力(学习能力.解决问题能力等),我们也需要团队合作能力,我们要明白,我们的成功来自于我们的团队(一个英雄是很难自靠自己的能力来创造一个时代的).今天我们就 ...

  6. android studio checkstyle插件,Android Studio 配置 CheckStyle

    一.简介 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱 ...

  7. Java代码规范、格式化和checkstyle检查配置文档

    为便于规范各位开发人员代码.提高代码质量,研发中心需要启动代码评审机制.为了加快代码评审的速度,减少不必要的时间,可以加入一些代码评审的静态检查工具,另外需要为研发中心配置统一的编码模板和代码格式化模 ...

  8. java checkstyle 导入_Checkstyle的配置详解

    Checkstyle是一款检查java程序代码样式的工具,可以有效的帮助我们检视代码以便更好的遵循代码编写标准,特别适用于小组开发时彼此间的样式规范和统一.Checkstyle提供了高可配置性,以便适 ...

  9. CheckStyle, 强制你遵循编码规范

    如今代码静态检查越来越重要,已经成为构建高质量软件的不可或缺的一个验证步骤.如果你使用的是java语言,那么CheckStyle则是一个利器. CheckStyle能够帮助程序员检查代码是否符合制定的 ...

最新文章

  1. 哪种编程语言又快又省电?有人对比了27种语言
  2. 【Python】解决Django Admin管理界面样式表(CSS Style)丢失问题
  3. linux systemd服务,systemd服务管理
  4. 分布式全文检索引擎之ElasticSearch
  5. linux系统原理是什么意思,Linux系统原理之整体概述
  6. Scott Hanselman 喊你来看看最新的极简APII
  7. java.lang.Record:规范草案
  8. Linux系统编程(七)消息队列
  9. python零基础能学吗-零基础怎么样才能学好Python?Python入门必看
  10. JSON转Excel
  11. 【原创】微信最新表情js代码
  12. Apache Kafka SAP
  13. mysql双机备份最简单_简单实现mysql双机热备份
  14. 一线工程师告诉你嵌入式真实现状与发展前景
  15. [日常]wps插入页眉页脚
  16. 课程实验三-bomb实验
  17. 2019年新版新媒体运营学习路线,附完整视频+工具+运营经验
  18. 推荐几款云服务器上搭建属于自己的私人网盘
  19. Python有参函数和无参函数实例
  20. Nature综述:培养未被培养微生物的创新方法

热门文章

  1. ARM 汇编指令 MOV32用法
  2. 绿幕特效视频的透明通道输出与拼合为图像矩阵
  3. 九、Mysql数据备份与恢复
  4. L2Dwidget 二次元前端插件
  5. 青龙面板宠汪汪开启自动更换京豆,让京豆再上一个台阶
  6. 【年报】:2019,你给我了什么;2020,我要做点什么
  7. 最新抽奖盒子小程序源码+价值300缘
  8. pymysql 安装报错
  9. 名帖146 行书《兰亭八柱帖》第四册:柳公权书兰亭诗
  10. 51nod 1128 正整数分组 V2(二分)