CheckStyle 自定义编码规范

CheckStyle能够帮助程序员检查代码是否符合制定的规范。通过将CheckStyle的检查引入到项目构建中,可以强制让项目中的所有的开发者遵循制定规范,而不是仅仅停留在纸面上。如果发现代码违反了标准,比如类名未以大写开头、单个方法超过了指定行数、甚至单个方法抛出了3个以上的异常等。这些检查由于是基于源码的,所以不需要编译,执行速度快。

官网地址: https://checkstyle.org/

接下来我记录下我的使用过程。

打开file --> settings,找到Plugins ,输入 checkStyle-IDEA
如下图所示:
CheckStyle 自定义编码规范_第1张图片
点击install 安装(我这里已经安装过了)
安装过程比较艰难,安装失败好几次 终于安装成功。
安装成功后会在左下角显示 CheckStyle,点击选择对应需要校验的规则可运行校验。
如下图所示:

CheckStyle 自定义编码规范_第2张图片
点击运行后 将显示校验结果。如下图所示:
CheckStyle 自定义编码规范_第3张图片

考虑到CheckStyle提供的校验规则很严格,这里说一下自定义的校验规则。

打开file --> deault settings,找到other settings ,可以看到安装好的 checkstyle,如下图所示:
CheckStyle 自定义编码规范_第4张图片
点击右侧添加按钮,如下图所示:

CheckStyle 自定义编码规范_第5张图片
输入描述,选择本地校验文件,点击下一步,成功。
CheckStyle 自定义编码规范_第6张图片
安装成功后,可设置提示颜色,具体如下:
打开settings,输入 inspections搜索,如下图所示:
CheckStyle 自定义编码规范_第7张图片

如果失败,不用慌,根据报错内容检查对应节点设置是否正确,比如:

com.puppycrawl.tools.checkstyle.api.CheckstyleException: cannot initialize module TreeWalker - TreeWalker is not allowed as a parent of RegexpSingleline Please review 'Parent Module' section for this Check in web documentation if Check is standard.
	at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:477)
	at com.puppycrawl.tools.checkstyle.api.AutomaticBean.configure(AutomaticBean.java:198)
	at org.infernus.idea.checkstyle.service.cmd.OpCreateChecker.execute(OpCreateChecker.java:61)
	at org.infernus.idea.checkstyle.service.cmd.OpCreateChecker.execute(OpCreateChecker.java:26)
	at org.infernus.idea.checkstyle.service.CheckstyleActionsImpl.executeCommand(CheckstyleActionsImpl.java:130)
	at org.infernus.idea.checkstyle.service.CheckstyleActionsImpl.createChecker(CheckstyleActionsImpl.java:60)
	at org.infernus.idea.checkstyle.service.CheckstyleActionsImpl.createChecker(CheckstyleActionsImpl.java:51)
	at org.infernus.idea.checkstyle.checker.CheckerFactoryWorker.run(CheckerFactoryWorker.java:46)
Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: TreeWalker is not allowed as a parent of RegexpSingleline Please review 'Parent Module' section for this Check in web documentation if Check is standard.
	at com.puppycrawl.tools.checkstyle.TreeWalker.setupChild(TreeWalker.java:148)
	at com.puppycrawl.tools.checkstyle.api.AutomaticBean.configure(AutomaticBean.java:198)
	at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:472)
	... 7 more

这段报错代码就是说RegexpSingleline这个节点的配置有问题,对应改好就ok了。

这里我放两个自定义的配置内容
第一个 是我参考的


    
    
    
    
    
    
    
    
        
    
 
    
    
        
        
        
        
            
            
            
        
        
        
            
            
            
        
        
        
            
            
            
        
        
        
        
        
        
        
        
        
            
            
        
        
        
            
            
        
        
        
        
        
            
            
        
        
            
            
            
        
        
        
            
            
            
            
            
            
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
            
            
        
        
        
            
            
            
        
        
            
            
            
        
        
            
            
            
            
        
        
            
            
            
            
        
        
            
            
            
        
        
        
            
            
        
        
        
            
        
        
        
            
            
        
        
        
            
            
        
        
        
            
            
        
        
        
            
            
        
        
        
            
            
            
        
        
        
            
            
        
        
        
            
            
        
        
        
            
            
        
        
        
 
        
            
            
            
            
        
        
        
            
            
            
            
            
            
            
            
        
        
        
            
            
        
        
        
        
        
        
        
            
            
            
            
        
        
        
        
        
            
            
        
        
        
        
        
            
            
        
        
        
            
            
        
 
        
            
            
            
        
        
        
        
        
        
        
            
            
            
        
        
        
        
        
            
            
        
        
        
            
            
            
            
            
            
            
            
        
        
        
            
            
        
        
        
            
        
        
        
            
        
        
        
    

第二个 是根据自己项目自定义的内容





    
    
    
    
    
    
    
    
 
    
    
        
        
            
            
            
            
        
         
        
            
            
            
            
        
        
        
            
            
        
        
        
            
            
        
        
        
        
        
            
            
        
        
        
            
        
        
        
            
            
        
        
        
            
        
        
        
            
            
        
        
        
        
        
            
        
        
        
            
            
        
        
        
        
        
        
        
        
        
        
        
        
        
        
                
        
        
            
            
            
        
         
        
            
            
            
        
        
        
            
        
        
        
            
        
        
        
        
        
            
        
        
        
            
        
        
        
            
        
        
        
        
        
        
        
        
            
            
        
         
        
            
            
        
        
        
            
        
        
        
            
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
            
        
        
            
        
        
            
        
        
        
    
    
    

你可能感兴趣的:(idea)