Checkstyle全局配置中style_template.xml创建方法

简介: Checkstyle全局配置中style_template.xml创建方法

一、在Eclipse中对Checkstyle插件安装好之后,要进行Checkstyle全局配置,但遇到下面文章内容中的第四步(见下图)会不知所措。

文章链接:点击打开文章链接

二、需要大家自己去创建style_template.xml,新建一个txt文本文件,然后重命名改成style_template.xml文件(见下图)。

三、将下面的代码复制到style_template.xml文件中(用记事本打开),然后保存。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
  <module name="TreeWalker">
    <!-- 想严格对文件头进行检查,请把文件头定义在一个外部文件中,如:java_header_file.txt 然后使 用"headerFile"属性:
    <module name="Header">
      <property name="headerFile" value="java_header_file.txt"/>
      <property name="ignoreLines" value="1, 5"/>
    </module>
    -->
    <!-- 忽略掉文件头的几行声明  不指定外部文件时出错,暂不使用
    <module name="Header">
      <property name="ignoreLines" value="1, 5"/>
    </module>
     -->
    <!-- ********************************javadoc的检查 ********************-->
    <!-- 检查所有的interface和class的doc -->
    <module name="JavadocType" />
    <!-- 检查所有方法的javadoc 注意方法上的@param XXX后必须跟参数说明检查才能通过 -->
    <module name="JavadocMethod"/>
    <!-- 变量的javadoc -->
    <module name="JavadocVariable"/>
    <!-- **************************************import方面的检查*********** -->
    <!-- import中避免星号"*" -->
    <module name="AvoidStarImport" />
    <!--没用的import检查,比如:1.没有被用到2.重复的3.import java.lang的4.import
      与该类在同一个package的-->
    <module name="UnusedImports" />
    <!-- ************************************命名规则检查****************** -->
    <!-- 类型(Class或Interface)名  ^[A-Z][a-zA-Z0-9]*$-->
    <module name="TypeName" />
    <!-- 方法名  ^[a-z][a-zA-Z0-9]*$-->
    <module name="MethodName" />
    <!-- 方法的参数命名 ^[a-z][a-zA-Z0-9]*$-->
    <module name="ParameterName " />
    <!-- 非static型变量  ^[a-z][a-zA-Z0-9]*$-->
    <module name="MemberName"/>
    <!-- 常量(static , final 字段)  ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$-->
    <module name="ConstantName" />
    <!-- 包名检查 ^[a-z]+(\.[a-z][a-z0-9]*)*$ -->
    <module name="PackageName">
      <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
    </module>
    <!-- 局部的final变量,包括catch中的参数  ^[a-z][a-zA-Z0-9]*$ -->
    <module name="LocalFinalVariableName" />
    <!-- 局部的非final型的变量,包括catch中的参数  ^[a-z][a-zA-Z0-9]*$ -->
    <module name="LocalVariableName" />
    <!-- 仅仅是static型的变量(不包括staticfinal型)  ^[a-z][a-zA-Z0-9]*$ -->
    <module name="StaticVariableName" />
    <!-- **************方法的参数个数不超过3个。 并且不对构造方法进行检查*******-->
    <module name="ParameterNumber">
      <property name="max" value="3" />
      <property name="tokens" value="METHOD_DEF" />
    </module>
    <!-- ************************代码行数及行代码长度限制****************** -->
    <!-- 文件长度不超过1500行,放在TreeWalker前面 -->
    <!-- 方法不超过50行 -->
    <module name="MethodLength">
      <property name="tokens" value="METHOD_DEF" />
      <property name="max" value="50" />
    </module>
    <!-- 每行不超过120个字 -->
    <module name="LineLength">
      <property name="max" value="120" />
    </module>
    <!-- ****************************空格限定***************************** -->
    <!-- 检查约定方法名与左边圆括号之间不许出现空格
      public void wrongStyleMethod (){
      public void wrongStyleMethod
                    (String para1, String para2){ 
      都是不能通过的,只允许方法名后紧跟左边圆括号"("-->
    <module name="MethodParamPad"/>
    <!-- 不允许左圆括号右边有空格,也不允许与右圆括号左边有空格
      public void wrongStyleMethod( String para1, String para2 ){
      public void correctStyleMethod(String para1, String para2){
      都不能通过-->
    <module name="ParenPad"/>
    <!-- 在类型转换时,不允许左圆括号右边有空格,也不允许与右圆括号左边有空格
      Object myObject = ( Object )other;
      不能通过-->
    <module name="TypecastParenPad"/>
    <!--  代码中不允许使用"tab"键。('\t') 因为在不同的编辑器下有的tab占8个空格(如windows记事
            本),有的占4个(如当前大多数IDE)。
    <module name="TabCharacter"/>
    -->
    <!-- **********************关键字********************************** -->
    <!-- 每个关键字都有正确的出现顺序。比如 public static final XXX 是对一个常量的声明。如果使用
      static public final 就是错误的 -->
    <module name="ModifierOrder"/>
    <!-- 过滤多于的关键字-->
    <module name="RedundantModifier"/>
    <!-- ***********************空白域************************************* -->
    <!-- 不能出现空白区域 -->
    <module name="EmptyBlock"/>
    <!-- 所有区域都要使用大括号
      if(true)
        System.out.println("if 嵌套浓度限定");
      不能通过-->
    <module name="NeedBraces"/>
    <!-- 多余的括号 -->
    <module name="AvoidNestedBlocks">
      <property name= "allowInSwitchCase" value="true"/>
    </module>
    <!-- ******************************编码方面的检查 **********************-->
    <!-- 不许出现空语句
      int a = 0; //正常
      ; // 这里就是一个空的语句
      int b = 0; //正常
    -->
    <module name="EmptyStatement" />
    <!-- 如果某个变量一直都没变,那么它就应该是final型的 -->
    <module name="FinalLocalVariable"/>
    <!-- 不允许使用switch语句 -->
    <module name="IllegalToken">
      <property name="tokens" value="LITERAL_SWITCH"/>
    </module>
    <!-- 内部赋值语句 :String s = Integer.toString(i = 2); -->
    <module name="InnerAssignment"/>
    <!-- 绝对不能容忍魔法数 ,即数据标识常量化-->
    <module name="MagicNumber" />
    <!-- 循环控制变量不能被修改 
    for (int i = 0; i < 1; i++) {
      i++; // 这里是极可能是程序员大意写出来的。
    }
    -->
    <module name="ModifiedControlVariable" />
    <!-- 多余的throw -->
    <module name="RedundantThrows" />
    <!-- 未被简化的条件表达式 检查过度复杂的条件表达式,
      比如: (b == true), b || true, !false, 难读且容易出错 -->
    <module name="SimplifyBooleanExpression"/>
    <!-- 未被简化的布尔返回值
      if (valid()){
        return false;
      }else{
        return true;
      }
      就可以写成:
      return !valid();
     -->
    <module name="SimplifyBooleanReturn"/>
    <!-- String的比较不能用!= 和 == -->
    <module name="StringLiteralEquality" />
    <!-- if最多嵌套3层 -->
    <module name="NestedIfDepth">
      <property name="max" value="3" />
    </module>
    <!-- try最多被嵌套2层 -->
    <module name="NestedTryDepth">
      <property name="max" value="2" />
    </module>
    <!-- 检查并确认一个类的clone()方法调用了父类的clone() -->
    <module name="SuperClone"/>
    <!-- 检查并确认一个类的finalize()调用了父类的finalize() -->
    <module name="SuperFinalize"/>
    <!-- 不能catch java.lang.Exception,异常分类处理
    <module name="IllegalCatch">
      <property name="illegalClassNames" value="java.lang.Exception" />
    </module>
     -->
    <!-- 确保一个类有package声明 -->
    <module name="PackageDeclaration" />
    <!-- 一个方法中最多有3个return -->
    <module name="ReturnCount">
      <property name="max" value="3" />
      <property name="format" value="^$" />
    </module>
    <!-- 确保某个class 在被使用时都已经被初始化成默认值(对象是null , 
      数字和字符是0 , boolean 变量是false.)了 -->
    <module name="ExplicitInitialization"/>
    <!-- 不许有同样内容的String -->
    <module name="MultipleStringLiterals" />
    <!-- 同一行不能有多个声明 -->
    <module name="MultipleVariableDeclarations" />
    <!-- 不必要的圆括号 检查不必要的圆括号”(,)”。比如, if(((((true))))) -->
    <module name="UnnecessaryParentheses" />    
    <!-- 限制一个布尔表达式中的 &&, || 和^的个数。可以让代码看起来更清晰,容易排错和维护  -->
    <module name="BooleanExpressionComplexity">
      <property name="max" value="4"/>
    </module>
    <!-- 一个类中如果使用太多其他的类,是肯定会增加系统复杂度的。使用其他
      的类越少,耦合度就越少 -->
    <module name="ClassDataAbstractionCoupling">
      <property name="max" value="5"/>
    </module>
    <!-- 确保函数的分支复杂度没有超出限制 -->
    <module name="CyclomaticComplexity">
      <property name="max" value="4"/>
    </module>
    <!-- NPATH 量度计算了一个函数的可执行的分支个数 -->
    <module name="NPathComplexity">
      <property name="max" value="3"/>
    </module>
    <!-- ***********System.out.println及e.printstack验证****************** -->
    <!-- 禁止使用System.out.println   **暂未生效
    <module name="GenericIllegalRegexp">
      <property name="format" value="System\.out\.println" />
      <property name="ignoreComments" value="true" />
    </module>
    <module name="GenericIllegalRegexp">
      <property name="format" value="e\.printStackTrace" />
      <property name="ignoreComments" value="true" />
    </module>
    -->
    <!-- ************************其他*********************************** -->
    <!-- 检查并确保所有的常量中的L都是大写的。因为小写的字母l跟数字1太象了 -->
    <module name="UpperEll" />
    <!-- 检查数组类型的定义是String[] args,而不是String args[] -->
    <module name="ArrayTypeStyle" />
    <!-- 不许使用与代码同行的注释
    <module name="TrailingComment"/>
     -->
    <!-- 不许存在TO DO 
    <module name="TodoComment" />
    -->
    <!-- 除了正常的程序入口之外,所有的main方法都应该被删掉或注释掉 -->
    <module name="UncommentedMain"/>
    <!-- 检查并确保所有的常量中的L都是大写的。也就是在常量中没有使用”l”而是用的”L”,比如long型常
      量,都要以”L”结尾。这与Sun编码规范 3.10.1 相一致。小写的字母l 跟数字1 太象了 -->
    <module name="UpperEll"/>
  </module>
</module>

四、最后按照之前文章的链接内容操作就可以配置成功了(见下图)。

相关文章
|
4月前
|
XML Ubuntu Linux
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
|
2月前
|
XML Java 数据格式
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
Spring 第二节内容补充 关于Bean配置的更多内容和细节 万字详解!
225 18
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
|
2月前
|
XML Java 应用服务中间件
springMVC01,springMVC的执行流程【第一个springMVC例子(XML配置版本):HelloWorld】
通过一个HelloWorld实例,介绍了SpringMVC的基本概念、执行流程,并详细讲解了如何创建和配置第一个SpringMVC项目(基于XML)。
springMVC01,springMVC的执行流程【第一个springMVC例子(XML配置版本):HelloWorld】
|
1月前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
155 5
|
1月前
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
103 4
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
77 4
|
1月前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
82 0
|
6月前
|
XML JavaScript 前端开发
属性和方法向 XML DOM 定义了编程接口
XML DOM 提供编程接口,通过属性和方法操作XML结构。使用JavaScript等语言,可访问和修改节点。属性如nodeName、nodeValue揭示节点信息,方法如getElementsByTagName、appendChild、removeChild实现查找、添加和删除节点功能。节点对象x的应用示例贯穿其中。
|
2月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
48 1
|
3月前
|
XML Android开发 UED
"掌握安卓开发新境界:深度解析AndroidManifest.xml中的Intent-filter配置,让你的App轻松响应scheme_url,开启无限交互可能!"
【8月更文挑战第2天】在安卓开发中,scheme_url 通过在`AndroidManifest.xml`中配置`Intent-filter`,使应用能响应特定URL启动或执行操作。基本配置下,应用可通过定义特定URL模式的`Intent-filter`响应相应链接。
114 12

相关课程

更多
下一篇
无影云桌面