• 下面主要介绍IDEA,如何配置,使用checkstyle

1、CheckStyle插件安装和使用

一,打开settings的plugins,点击查找CheckStyle-IDEA安装,如果查找不到,Browse repositories…

二,使用IDEA的插件生效,

三、添加自己的配置文件,要检查的项目

四.将checkstyle.xml配置文件粘贴如下 :

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC"-//Puppy Crawl//DTD Check Configuration 1.3//EN""http://www.puppycrawl.com/dtds/configuration_1_3.dtd"><module name="Checker"><!--If you set the basedir property below, then all reported filenames will be relative to the specified directory. Seehttp://checkstyle.sourceforge.net/5.x/config.html#Checker<property name="basedir" value="${basedir}"/>--><!-- 检查每个包中是否有java注释文件,默认有package-info.java --><!-- <module name="JavadocPackage"/> --><!-- 检查文件是否以一个空行结束 --><module name="NewlineAtEndOfFile"/><!-- 检查property文件中是否有相同的key --><module name="Translation"/><!-- 文件长度不超过1500行 --><module name="FileLength"><property name="max" value="1500"/></module><!-- 检查文件中是否含有'\t' --><module name="FileTabCharacter"/><!-- Miscellaneous other checks. --><module name="RegexpSingleline"><property name="format" value="\s+$"/><property name="minimum" value="0"/><property name="maximum" value="0"/><property name="message" value="Line has trailing spaces."/></module><!-- 每个java文件一个语法树 --><module name="TreeWalker"><!-- 注释检查 --><!-- 检查方法和构造函数的javadoc --><module name="JavadocMethod"><property name="tokens" value="METHOD_DEF" /></module><!-- 检查类和接口的javadoc。默认不检查author和version tags --><module name="JavadocType"/><!-- 检查变量的javadoc --><module name="JavadocVariable"/><!-- 检查javadoc的格式 --><module name="JavadocStyle"><property name="checkFirstSentence" value="false"/></module><!-- 检查TODO:注释 --><module name="TodoComment"/><!-- 命名检查 --><!-- 局部的final变量,包括catch中的参数的检查 --><module name="LocalFinalVariableName" /><!-- 局部的非final型的变量,包括catch中的参数的检查 --><module name="LocalVariableName" /><!-- 包名的检查(只允许小写字母),默认^[a-z]+(\.[a-zA-Z_][a-zA-Z_0-9_]*)*$ --><module name="PackageName"><property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$" /><message key="name.invalidPattern" value="包名 ''{0}'' 要符合 ''{1}''格式."/></module><!-- 仅仅是static型的变量(不包括static final型)的检查 --><module name="StaticVariableName" /><!-- Class或Interface名检查,默认^[A-Z][a-zA-Z0-9]*$--><module name="TypeName"><property name="severity" value="warning"/><message key="name.invalidPattern" value="名称 ''{0}'' 要符合 ''{1}''格式."/></module><!-- 非static型变量的检查 --><module name="MemberName" /><!-- 方法名的检查 --><module name="MethodName" /><!-- 方法的参数名 --><module name="ParameterName " /><!-- 常量名的检查(只允许大写),默认^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$ --><module name="ConstantName" /><!-- 定义检查 --><!-- 检查数组类型定义的样式 --><module name="ArrayTypeStyle"/><!-- 检查方法名、构造函数、catch块的参数是否是final的 --><!-- <module name="FinalParameters"/> --><!-- 检查long型定义是否有大写的“L” --><module name="UpperEll"/><!-- Checks for Headers                                --><!-- See http://checkstyle.sf.net/config_header.html   --><!-- <module name="Header">                            --><!-- The follow property value demonstrates the ability     --><!-- to have access to ANT properties. In this case it uses --><!-- the ${basedir} property to allow Checkstyle to be run  --><!-- from any directory within a project. See property      --><!-- expansion,                                             --><!-- http://checkstyle.sf.net/config.html#properties        --><!-- <property                                              --><!--     name="headerFile"                                  --><!--     value="${basedir}/java.header"/>                   --><!-- </module> --><!-- Following interprets the header file as regular expressions. --><!-- <module name="RegexpHeader"/>                                --><!-- import检查--><!-- 避免使用* --><module name="AvoidStarImport"/><!-- 检查是否从非法的包中导入了类 --><module name="IllegalImport"/><!-- 检查是否导入了多余的包 --><module name="RedundantImport"/><!-- 没用的import检查,比如:1.没有被用到2.重复的3.import java.lang的4.import 与该类在同一个package的 --><module name="UnusedImports" /><!-- 长度检查 --><!-- 每行不超过150个字符 --><module name="LineLength"><property name="max" value="150" /></module><!-- 方法不超过150行 --><module name="MethodLength"><property name="tokens" value="METHOD_DEF" /><property name="max" value="150" /></module><!-- 方法的参数个数不超过5个。 并且不对构造方法进行检查--><module name="ParameterNumber"><property name="max" value="10" /><property name="ignoreOverriddenMethods" value="true"/><property name="tokens" value="METHOD_DEF" /></module><!-- 空格检查--><!-- 方法名后跟左圆括号"(" --><module name="MethodParamPad" /><!-- 在类型转换时,不允许左圆括号右边有空格,也不允许与右圆括号左边有空格 --><module name="TypecastParenPad" /><!-- Iterator --><!-- <module name="EmptyForIteratorPad"/> --><!-- 检查尖括号 --><!-- <module name="GenericWhitespace"/> --><!-- 检查在某个特定关键字之后应保留空格 --><module name="NoWhitespaceAfter"/><!-- 检查在某个特定关键字之前应保留空格 --><module name="NoWhitespaceBefore"/><!-- 操作符换行策略检查 --><module name="OperatorWrap"/><!-- 圆括号空白 --><module name="ParenPad"/><!-- 检查分隔符是否在空白之后 --><module name="WhitespaceAfter"/><!-- 检查分隔符周围是否有空白 --><module name="WhitespaceAround"/><!-- 修饰符检查 --><!-- 检查修饰符的顺序是否遵照java语言规范,默认public、protected、private、abstract、static、final、transient、volatile、synchronized、native、strictfp --><module name="ModifierOrder"/><!-- 检查接口和annotation中是否有多余修饰符,如接口方法不必使用public --><module name="RedundantModifier"/><!-- 代码块检查 --><!-- 检查是否有嵌套代码块 --><module name="AvoidNestedBlocks"/><!-- 检查是否有空代码块 --><module name="EmptyBlock"/><!-- 检查左大括号位置 --><module name="LeftCurly"/><!-- 检查代码块是否缺失{} --><module name="NeedBraces"/><!-- 检查右大括号位置 --><module name="RightCurly"/><!-- 代码检查 --><!-- 检查是否在同一行初始化 --><!-- <module name="AvoidInlineConditionals"/> --><!-- 检查空的代码段 --><module name="EmptyStatement"/><!-- 检查在重写了equals方法后是否重写了hashCode方法 --><module name="EqualsHashCode"/><!-- 检查局部变量或参数是否隐藏了类中的变量 --><module name="HiddenField"><property name="tokens" value="VARIABLE_DEF"/></module><!-- 检查是否使用工厂方法实例化 --><module name="IllegalInstantiation"/><!-- 检查子表达式中是否有赋值操作 --><module name="InnerAssignment"/><!-- 检查是否有"魔术"数字 --><module name="MagicNumber"><property name="ignoreNumbers" value="0, 1"/><property name="ignoreAnnotation" value="true"/></module><!-- 检查switch语句是否有default --><module name="MissingSwitchDefault"/><!-- 检查是否有过度复杂的布尔表达式 --><module name="SimplifyBooleanExpression"/><!-- 检查是否有过于复杂的布尔返回代码段 --><module name="SimplifyBooleanReturn"/><!-- 类设计检查 --><!-- 检查类是否为扩展设计l --><!-- <module name="DesignForExtension"/> --><!-- 检查只有private构造函数的类是否声明为final --><module name="FinalClass"/><!-- 检查工具类是否有putblic的构造器 --><module name="HideUtilityClassConstructor"/><!-- 检查接口是否仅定义类型 --><module name="InterfaceIsType"/><!-- 检查类成员的可见度 --><module name="VisibilityModifier"/><!-- 其他检查 --><!-- 文件中使用了System.out.print等<module name="GenericIllegalRegexp"><property name="format" value="System\.out\.print"/></module><module name="GenericIllegalRegexp"><property name="format" value="System\.exit"/></module><module name="GenericIllegalRegexp"><property name="format" value="printStackTrace"/></module>--><!-- 代码质量 --><!-- 圈复杂度<module name="CyclomaticComplexity"><property name="max" value="2"/></module> --></module>
</module>

五.运行并看执行效果
点击要check的文件,就会根据您配置的规范,提示出一系统的问题。

idea 配置checkstyle【提高代码质量,检查代码规范的工具】相关推荐

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

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

  2. 如何提高代码质量:代码复查

    如何提高代码质量:代码复查 软件项目普遍存在的问题 1)新手 任何项目组成员都不可避免地出现新手,他们往往是刚刚从大学毕业的学生.这些新手由于软件开发时间太短,往往技术不成熟,没有形成良好的开发习惯, ...

  3. 说说代码质量、代码安全和软件测试那些事

    作者 | 灰狐 来源 | 灰狐 最近工作需要,把代码质量.代码安全和软件测试做了一下梳理,并思考将它们更好的融入日常研发和 DevOps 流水线. 今天,就和大家简单聊聊代码质量.代码安全和软件测试的 ...

  4. 代码质量 重构 代码鸡汤

    我们可以从大处着眼,参考代码质量评判标准,只要有 这段代码是否可读,可扩展性,可维护性,是否灵活,是否简洁,是否可复用,可测试.落实到具体细节.我们可以从以下几个方面来审视代码. 目录设置是否合理.模 ...

  5. jenkins插件findbugs+pmd+checkstyle结合sonar与maven(java环境代码质量和代码规范管理)...

    一.下载jdk并安装(最好jdk官网下载解压安装的) 二.下载maven并安装maven 三.安装jenkins及插件 安装checkstyle.pmd.findbugs.maven.sonar等相关 ...

  6. 五个有用的工具帮助您提高代码质量

    前言 对于开发人员而言,代码质量一直是一个非常重要的话题.高质量的代码不仅可以提高应用程序的性能,还可以减少代码错误和维护成本.然而,如何确保代码质量呢?下面介绍五个有用的工具,可以帮助您提高代码质量 ...

  7. 良好的编码习惯 —— 5 个提高代码质量的技巧

    原文地址:Good Coding Practices – Five Tips to Enhance Code Quality 原文作者:Jay 译文出自:掘金翻译计划 本文永久链接:github.co ...

  8. 怎么提高代码质量?-来自Google的研发经验总结

    你的团队有没有过这样的经历:开发效率低,招了很多人,天天加班,出活却不多,线上bug频发,领导发飙,中层束手无策,工程师抱怨不断,查找bug困难.其实这些都是代码质量差惹的祸.代码质量是研发质量管理的 ...

  9. 代码质量检测-SonarQube

    文章目录 前言 一.SonarQube是什么? 二.SonarQube安装步骤 1.docker安装 2.docker-compose安装 3. 访问SonarQube 4. 配置SonarQube ...

最新文章

  1. 有人质疑面向对象编程?
  2. java的集合:List、Set和Map
  3. linux动态库文件.so为什么有多个版本号?(多个名字)(小版本升级)
  4. ITK:仅将过滤器应用于图像的指定区域
  5. python-自动发邮件
  6. CDH - 启动HbaseMaster时异常
  7. Python的安装路径
  8. JBPM4.4_jBPM4.4的流程定义语言(设计流程)
  9. 怎么判断间隙过渡过盈配合_什么是间隙配合、过盈配合、过渡配合?它们在汽车上有哪些应用?...
  10. JavaWeb项目框架
  11. 用计算机弹出平凡之路节奏,计算机音乐谱平凡之路
  12. 启动界面、封面图片、Splash关不掉,一直转圈,无法进入
  13. android六边形控件,Android自定义六边形控件
  14. 生鲜电商:卖什么?卖给谁?怎么卖?
  15. 自学软件测试,缺少项目实战怎么办?
  16. Jetson Xavier NX 套件将系统装到SSD
  17. 计算机应用有作业吗,计算机应用基础_作业1
  18. 实验五 网络编程与安全 20162316 刘诚昊
  19. Doom/Quake射击游戏引擎
  20. linux求两个文件的交集,并集,差集

热门文章

  1. 半色调图像中高频与低频的理解
  2. 基于pyqt5开发的图书管理系统UI(带登录页面)
  3. 糟了,上网记录被 Python 扒下来了!
  4. ORA-04098: trigger ‘xxx.xxx‘ is invalid and failed re-validation
  5. Pyecharts3D图:常见的3D图
  6. Verilog HDL 硬件描述语言基础
  7. NANDFLASH介绍(转)
  8. 电子信息工程专业考研选择物联网开发怎么样?
  9. 流媒体视频服务:快速搭建一个简单的流媒体视频服务(一)
  10. [附源码]Node.js计算机毕业设计高校智慧党建党务管理系统Express