SonarQube配置自定义的CheckStyle代码规则


1、CheckStyle插件安装


应用市场中搜索CheckStyle即可,搜索出来后,点击安装按钮(我这里已经安装了,未安装的情况再卸载按钮的地方会有安装按钮),即可下载安装,安装过程中会有一次重启操作
:有些版本的SonarQube插件安装是在配置-系统-更新中心

2、配置自定义的CheckStyle代码规则

配置自定义的CheckStyle代码规则,有两种方法,使用CheckStyle代码规则配置文件启用SonarQube中的CheckStyle相关代码规则,下面一一介绍:

  • 使用CheckStyle代码规则配置文件 
    注意:这种方法只有新建一个质量配置时才能用,质量配置创建好后,就不能利用配置文件来配置代码规则了。 
    SonarQube配置自定义的CheckStyle代码规则
    SonarQube配置自定义的CheckStyle代码规则 
    按照上面两个图,填写好相关信息后,点击创建按钮。这里有几个问题需要注意下:

    问题一 配置文件不能以<?xml version="1.0" encoding="UTF-8"?>开头,否则点击创建按钮时会有如下错误提示: 
    SonarQube配置自定义的CheckStyle代码规则 
    因此要把此标签去掉,直接以<module>标签开头,如下图所示: 
    SonarQube配置自定义的CheckStyle代码规则

    问题二 配置文件中不能有重复的规则,否则点击创建按钮时,会有报错提示,比如:SonarQube配置自定义的CheckStyle代码规则 
    上图中提示ReturnCountCheck进行了重复配置,看一下配置文件 
    SonarQube配置自定义的CheckStyle代码规则 
    这里我们需要对构造函数和lambda表达式的返回语句个数进行不同的配置,但是SonarQube认为是重复的配置。┑( ̄Д  ̄)┍

    问题三 配置文件中不能有规则模板(规则模板后面介绍),当配置文件中有规则模板,点击创建按钮时,会有报错提示,比如: 
    SonarQube配置自定义的CheckStyle代码规则 
    上图错误提示的意思是:规则模板checkstyle:com.puppycrawl.tools.checkstyle.checks.coding.FinalLocalVariableCheck不能被**。这条规则是检测从未改变的局部变量是否添加final修饰词,那么如果我们需要添加这条规则,怎么处理呢?留到启用SonarQube中CheckStyle相关代码规则方法去说。

    通过使用配置文件的方法配置自定义的CheckStyle代码规则,或多或少还会有其它问题,要根据提示处理配置文件。所以,一般情况下,不建议使用这种方法,事倍功半的说。╥﹏╥

  • 启用SonarQube中CheckStyle相关代码规则 
    SonarQube配置自定义的CheckStyle代码规则
    如图所示,在质量配置中会显示SonarQube中所有已安装编程语言中创建好的规则配置(每个语言都有内置Sonar way的默认配置),可见,刚刚创建的CheckStyle配置中,通过文件已配置了18条规则,接下来我们再进行添加。点击配置名称,进入配置详情页:SonarQube配置自定义的CheckStyle代码规则
    点击更多**规则 
    SonarQube配置自定义的CheckStyle代码规则上图中左边栏的用于筛选的,可从语言、规则类型、标签、资源库等等进行筛选,这里我们要用到资源库的筛选,选中资源库后,会列举出已安装的插件列表,选中CheckStyle,页面中会筛选出CheckStyle的可配置规则(上图已经筛选好了,显示有136条可配置的规则)。

    接下来就可以对这136条规则进行配置了,细心的同学可能已经发现了,规则列表中的规则有两类:非模板规则(有活动按钮,无规则模板的标签)和模板规则(无活动按钮,有规则模板的标签)。所以,我们也分两类讲:

    • 非模板规则 
      对于非模板规则,我们直接在规则列表中点击列表项的活动按钮即可,在弹出的对话框中填写属性值,如下图所示: 
      SonarQube配置自定义的CheckStyle代码规则
      如果想先了解下规则的内容,也可以先点击规则名称进入详情页,详情页也有**的入口。
    • 规则模板 
      对于规则模板,是没有直接的**按钮的。那么规则模板怎么**呢?且听下回分解……O(∩_∩)O哈哈~(玩笑脸) 
      规则模板,需要我们先根据模板创建一条规则,之后再**创建的规则。接下来说步骤(以上文说的规则模板Final Local Variable为例) 
      • 在规则列表中找到这表规则,点击规则名称进入详情页 
        SonarQube配置自定义的CheckStyle代码规则
      • 点击创建按钮,弹出自定义规则创建框 
        SonarQube配置自定义的CheckStyle代码规则
    • 根据提示填写相关信息后(子属性根据需要进行填写,不填则使用默认值),点击创建按钮。 
      创建成功的规则如下图所示: 
      SonarQube配置自定义的CheckStyle代码规则
      在自定义规则下面会有一个创建的规则列表。此时回到之前的规则列表后,会在列表中找到刚刚创建的规则,点击列表项的活动即可**。其次,也可以在此页面点击自定义的规则名称,进入详情页 
      SonarQube配置自定义的CheckStyle代码规则
      在此页面中,可以进行二次编辑删除**等操作。

配置好后,可在配置详情页中点击CheckStyle的链接,以XML的格式查看已配置好的规则,如下图所示: 
SonarQube配置自定义的CheckStyle代码规则 
SonarQube配置自定义的CheckStyle代码规则