简单介绍

checkStyle是一款代码格式检查工具。它依据设置好的编码规则来自己主动检查代码。比方命名规范,文件长度。代码行长度等等。代码检查工具是保证项目代码质量、统一编码风格的一种重要途径。本篇博客主要讲讲使用checkStyle的检查规则的陪置。

安装

方法一:

      1. Eclipse中,选择Help->Software Updates->Find and Install
      2. 选择 Search for new features to install 选择Next
      3. 选择 New Remote Site
      4. 输入更新地址:http://eclipse-cs.sourceforge.net/update
      5. 安装后重新启动就可以

方法二:

1.下载eclipse插件:http://sourceforge.net/projects/eclipse-cs/

下载后。把里面的两个文件夹plugins和 features以下的文件分别复制到eclipse文件夹以下相应的plugins和features文件夹

2.假设你就这样直接启动eclipse 可能会出现ClassNotFoundExceptions 等错误,所以必须在启动eclipse的时候加上一个參数 -clean. 这样eclipse就能够更新它当前安装的很多插件信息

比方你得eclipse在d盘 那么就是 d:\eclipse\eclipse.exe -clean

Checkstyle的陪置文件导入

点击“Window”->“Preferences”菜单。在弹出窗体左側点击“Checkstyle”,可看到右側默认选中的是“Sun Checks”检查规则。由于该规则要求比較严格,并且不适合本研发中心。所以须要自己定义检查文件。点击“New”button后,弹出“Check Configuration Properties”窗体。例如以下图所看到的:

在上图中选择“Type”为“External Configuration File”(外部配置文件)。在“Location”行点击“Browse”button浏览选择checkstyle的配置文件。比如eclipse_checkstyle.xml文件(仅供參考。可自行定义),并输入“Name”行的值。比如“eclipse_checkstyle”,点击“OK”button完毕导入操作。回到Checkstyle主页面选择刚才加入的文件,点击“Set As Default”将其设置为默认checkstyle检查文件。

陪置具体解释

<module name="Checker">

    <!-- 消息提示等级 -->
<property name="severity" value="warning"/>
<!-- 字符集限制 -->
<property name="charset" value="UTF-8"/> <module name="TreeWalker"> <!-- javadoc的检查 -->
<!-- 检查全部的interface和class -->
<module name="JavadocType"/> <!-- 检查全部方法的javadoc,能够不声明RuntimeException -->
<module name="JavadocMethod">
<property name="allowUndeclaredRTE" value="true"/>
<property name="allowMissingPropertyJavadoc" value="true"/>
</module>
<!-- 检查变量的javadoc -->
<module name="JavadocVariable">
<property name="scope" value="public"/>
</module> <!-- 命名方面的检查。它们都使用了Sun官方定的规则。 -->
<!-- 类名(class 或interface) 的检查 -->
<module name="TypeName"/>
<!-- 变量的检查 -->
<module name="MemberName"/>
<!-- 方法名的检查 -->
<module name="MethodName"/>
<!-- 方法的參数名 -->
<module name="ParameterName "/>
<!-- 常量名的检查 -->
<module name="ConstantName"/> <!-- 长度方面的检查 -->
<!-- 文件长度不超过1500行 --> <!-- 每行不超过120个字-->
<module name="LineLength">
<property name="max" value="120"/>
</module>
<!-- 方法不超过30行 -->
<module name="MethodLength">
<property name="tokens" value="METHOD_DEF"/>
<property name="max" value="30"/>
</module>
<!-- 方法的參数个数不超过3个。 -->
<module name="ParameterNumber">
<property name="max" value="3"/>
</module> <!-- 多余的keyword -->
<module name="RedundantModifier"/>
<!-- 对区域的检查 -->
<!-- 不能出现空白区域 -->
<module name="EmptyBlock"/>
<!-- 全部区域都要使用大括号。 -->
<module name="NeedBraces"/>
<!-- 多余的括号 -->
<module name="AvoidNestedBlocks">
<property name= "allowInSwitchCase"
value="true"/>
</module> <!-- 编码方面的检查 --> <!-- 不许出现空语句 -->
<module name="EmptyStatement"/>
<!-- 每一个类都实现了equals()和hashCode() -->
<module name="EqualsHashCode"/>
<!-- 不许使用switch -->
<module name="IllegalToken">
<property name="tokens"
value="LITERAL_SWITCH"/>
</module>
<!-- 不许内部赋值 -->
<module name="InnerAssignment"/>
<!-- 绝对不能容忍魔法数 -->
<module name="MagicNumber"/>
<!-- 循环控制变量不能被改动 -->
<module name="ModifiedControlVariable"/>
<!-- 多余的throw -->
<!-- <module name="RedundantThrows"/> -->
<!-- 不许使用未被简化的条件表达式 -->
<module name="SimplifyBooleanExpression"/>
<!-- 不许使用未被简化的布尔返回值 -->
<module name="SimplifyBooleanReturn"/>
<!-- String的比較不能用!= 和 == -->
<module name="StringLiteralEquality"/>
<!-- if最多嵌套3层 -->
<module name="NestedIfDepth">
<property name="max" value="3"/>
</module>
<!-- try最多被嵌套1层 -->
<module name="NestedTryDepth"/>
<!-- clone方法必须调用了super.clone() -->
<module name="SuperClone"/>
<!-- finalize 必须调用了super.finalize() -->
<module name="SuperFinalize"/>
<!-- 不能catch java.lang.Exception -->
<module name="IllegalCatch">
<property name="illegalClassNames"
value="java.lang.Exception"/>
</module>
<!-- JUnitTestCase 的核心方法存在。 -->
<!-- <module name="JUnitTestCase"/> -->
<!-- 一个方法中最多有3个return -->
<module name="ReturnCount">
<property name="max" value="3"/>
</module>
<!-- 不许对方法的參数赋值 -->
<module name="ParameterAssignment"/>
<!-- 不许有相同内容的String -->
<module name="MultipleStringLiterals"/>
<!-- 同一行不能有多个声明 -->
<module name="MultipleVariableDeclarations"/> <!-- 各种量度 -->
<!-- 布尔表达式的复杂度。不超过3 -->
<module name="BooleanExpressionComplexity"/>
<!-- 类数据的抽象耦合。不超过7 -->
<module name="ClassDataAbstractionCoupling"/>
<!-- 类的分散复杂度,不超过20 -->
<module name="ClassFanOutComplexity"/>
<!-- 函数的分支复杂度。不超过10 -->
<module name="CyclomaticComplexity"/>
<!-- NPath复杂度,不超过200 -->
<module name="NPathComplexity"/> <!-- 杂项 -->
<!-- 禁止使用System.out.println -->
<!-- <module name="GenericIllegalRegexp">
<property name="format" value="System\.out\.println"/>
<property name="ignoreComments" value="true"/>
</module> --> <!-- 不许使用与代码同行的凝视 -->
<module name="TrailingComment"/>
<!-- 不同意存在todo标签 -->
<module name="TodoComment">
<property name="severity" value="warning"/>
<property name="format" value="TODO"/>
</module>
</module> <module name="FileLength">
<property name="max" value="1500"/>
</module> <!-- 检查翻译文件 -->
<module name="Translation"/> </module>

小结:这里也就是陪置文件里的陪置项须要有一点了解,些小的错误都会导致文件陪置文件无法导入成功。

checkStyle使用具体解释的更多相关文章

  1. software testing homework2

    一.Checkstyle安装及使用 1.checkstyle插件包:http://sourceforge.net/projects/eclipse-cs/ checkstyle.xml配置文件:htt ...

  2. 提高Java代码质量的Eclipse插件之Checkstyle的使用具体解释

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

  3. 如何更好地利用Pmd、Findbugs和CheckStyle分析结果

    这里列出了很多Java静态分析工具,每一种工具关注一个特定的能发挥自己特长的领域,我们可以列举一下: Pmd 它是一个基于静态规则集的Java源码分析器,它可以识别出潜在的如下问题:– 可能的bug— ...

  4. Eclipse插件CheckStyle的安装和使用

    转载自:http://www.cnblogs.com/lanxuezaipiao/p/3202169.html CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员 ...

  5. 提高Java代码质量的Eclipse插件之Checkstyle的使用详解

    提高Java代码质量的Eclipse插件之Checkstyle的使用详解 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代 ...

  6. 【开发技术】java中代码检查checkStyle结果分析

    编写Javadoc代码在Java代码的类.函数.数据成员前中输入/**回车,Eclipse能够自动生成相应的Javadoc代码.可以在后面添加相关的文字说明. Type is missing a ja ...

  7. maven项目添加findbugs,checkstyle,jacoco,assembly,maven-jar-plugin插件的配置

    (1)名称解释(插件的作用) findbugs:检测代码的不明显的语法错误.例如:用了==去比较字符串,定义了没有用的变量-- checkstyle:检测代码的格式规范.例如:方法没有写注释,类的命名 ...

  8. checkStyle 错误普及

    1Type is missing a javadoc commentClass  缺少类型说明 2“{” should be on the previous line“{” 应该位于前一行.解决方法: ...

  9. CheckStyle检查规则中文翻译

    本文主要介绍CheckStyle 的各个规则配置项目,这个版本的CheckStyle将样式规则分为了以下十六种类型共138条规则: 官方文档地址:http://checkstyle.sourcefor ...

随机推荐

  1. Memcache缓存用好了,性能有了很大的提高

    web服务器1 web服务器2 web服务器3如果每台web服务器都向mysql服务器表插入信息并且要做出相应最新编号反馈出现这样的高并发时候怎么减少服务器压力,同时用户体验还要好 可以使用Memca ...

  2. BZOJ 4491: 我也不知道题目名字是什么

    4491: 我也不知道题目名字是什么 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 278  Solved: 154[Submit][Status][ ...

  3. Codeforces 935D Fafa and Ancient Alphabet

    题目链接 题意 给定两个\(n\)位的\(m\)进制数\(s1,s2\),所有出现的\(0\)均可等概率地被其他数字替换,求\(s1\gt s2\)的概率. 思路 从高位到低位,根据每一位上相应的\( ...

  4. HDU4757 Tree(可持久化Trie)

    写过可持久化线段树,但是从来没写过可持久化的Trie,今天补一补. 题目就是典型的给你一个数x,和一个数集,问x和里面的某个数xor起来的最大值是多少. 最原始的是数集是固定的,只需要对数集按照高到低 ...

  5. JavaScripts广告轮播图以及定时弹出和定时隐藏广告

    轮播图: 函数绑定在body标签内 采用3张图,1.jpg   2.jpg  3.jpg  利用定时任务执行设置图片属性 src  利用for循环可以完成3秒一次 一替换. 定时弹出广告: 由于bod ...

  6. poj 1061(线性同余)

    青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 104278   Accepted: 20356 Descript ...

  7. LeetCode OJ--Combination Sum **

    https://oj.leetcode.com/problems/combination-sum/ 给一列数,3 2 1 3 3 8 7 9 ,每个数可以重复多次,给target 7, 问可以加起来得 ...

  8. Notepad++ 自动补全,括号自动完成插件,主题和字体设置

    Notepad++ 自动补全成对符号http://rabbit52.com/2012/devel/notepad-autocomplete-brackets QuickText 和 Zen Codin ...

  9. DB2 数据库中字段特定字符替换为空

    Update RM_CarInfo set ImportTitle = Replace(ImportTitle,'ZD','') WHERE ImportTitle LIKE'%ZD%';

  10. 牛客网 牛客小白月赛2 H.武-最短路(Dijkstra)

    H.武 链接:https://www.nowcoder.com/acm/contest/86/H 这个题写的有点想发脾气,自己的板子垃圾了,这个题要用优先队列优化版的迪杰斯特拉的板子才可以过,但是自己 ...