idea 配置checkstyle【提高代码质量,检查代码规范的工具】
- 下面主要介绍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【提高代码质量,检查代码规范的工具】相关推荐
- idea,配置checkstyle 【提高代码质量,检查代码规范的工具 】Checkstyle,FindBugs,PMD,Jtest
idea,配置checkstyle [提高代码质量,检查代码规范的工具 ]Checkstyle,FindBugs,PMD,Jtest 2016年12月15日 14:19:02 common_util ...
- 如何提高代码质量:代码复查
如何提高代码质量:代码复查 软件项目普遍存在的问题 1)新手 任何项目组成员都不可避免地出现新手,他们往往是刚刚从大学毕业的学生.这些新手由于软件开发时间太短,往往技术不成熟,没有形成良好的开发习惯, ...
- 说说代码质量、代码安全和软件测试那些事
作者 | 灰狐 来源 | 灰狐 最近工作需要,把代码质量.代码安全和软件测试做了一下梳理,并思考将它们更好的融入日常研发和 DevOps 流水线. 今天,就和大家简单聊聊代码质量.代码安全和软件测试的 ...
- 代码质量 重构 代码鸡汤
我们可以从大处着眼,参考代码质量评判标准,只要有 这段代码是否可读,可扩展性,可维护性,是否灵活,是否简洁,是否可复用,可测试.落实到具体细节.我们可以从以下几个方面来审视代码. 目录设置是否合理.模 ...
- jenkins插件findbugs+pmd+checkstyle结合sonar与maven(java环境代码质量和代码规范管理)...
一.下载jdk并安装(最好jdk官网下载解压安装的) 二.下载maven并安装maven 三.安装jenkins及插件 安装checkstyle.pmd.findbugs.maven.sonar等相关 ...
- 五个有用的工具帮助您提高代码质量
前言 对于开发人员而言,代码质量一直是一个非常重要的话题.高质量的代码不仅可以提高应用程序的性能,还可以减少代码错误和维护成本.然而,如何确保代码质量呢?下面介绍五个有用的工具,可以帮助您提高代码质量 ...
- 良好的编码习惯 —— 5 个提高代码质量的技巧
原文地址:Good Coding Practices – Five Tips to Enhance Code Quality 原文作者:Jay 译文出自:掘金翻译计划 本文永久链接:github.co ...
- 怎么提高代码质量?-来自Google的研发经验总结
你的团队有没有过这样的经历:开发效率低,招了很多人,天天加班,出活却不多,线上bug频发,领导发飙,中层束手无策,工程师抱怨不断,查找bug困难.其实这些都是代码质量差惹的祸.代码质量是研发质量管理的 ...
- 代码质量检测-SonarQube
文章目录 前言 一.SonarQube是什么? 二.SonarQube安装步骤 1.docker安装 2.docker-compose安装 3. 访问SonarQube 4. 配置SonarQube ...
最新文章
- 有人质疑面向对象编程?
- java的集合:List、Set和Map
- linux动态库文件.so为什么有多个版本号?(多个名字)(小版本升级)
- ITK:仅将过滤器应用于图像的指定区域
- python-自动发邮件
- CDH - 启动HbaseMaster时异常
- Python的安装路径
- JBPM4.4_jBPM4.4的流程定义语言(设计流程)
- 怎么判断间隙过渡过盈配合_什么是间隙配合、过盈配合、过渡配合?它们在汽车上有哪些应用?...
- JavaWeb项目框架
- 用计算机弹出平凡之路节奏,计算机音乐谱平凡之路
- 启动界面、封面图片、Splash关不掉,一直转圈,无法进入
- android六边形控件,Android自定义六边形控件
- 生鲜电商:卖什么?卖给谁?怎么卖?
- 自学软件测试,缺少项目实战怎么办?
- Jetson Xavier NX 套件将系统装到SSD
- 计算机应用有作业吗,计算机应用基础_作业1
- 实验五 网络编程与安全 20162316 刘诚昊
- Doom/Quake射击游戏引擎
- linux求两个文件的交集,并集,差集
热门文章
- 半色调图像中高频与低频的理解
- 基于pyqt5开发的图书管理系统UI(带登录页面)
- 糟了,上网记录被 Python 扒下来了!
- ORA-04098: trigger ‘xxx.xxx‘ is invalid and failed re-validation
- Pyecharts3D图:常见的3D图
- Verilog HDL 硬件描述语言基础
- NANDFLASH介绍(转)
- 电子信息工程专业考研选择物联网开发怎么样?
- 流媒体视频服务:快速搭建一个简单的流媒体视频服务(一)
- [附源码]Node.js计算机毕业设计高校智慧党建党务管理系统Express