【转】SonarQube配置自定义的CheckStyle代码规则
原文地址:https://www.jianshu.com/p/ff1d800885ce
惯例第一步肯定是SonarQube的安装与运行配置了,但这部分不在本文主题内,网上一搜一大把,这里就不讲了,大家可以先看这篇文章:SonarQube的安装、配置与使用。我们直接讲自定义CheckStyle代码规则的配置方法。
(注:不同的SonarQube版本可能略有不同,大家按线索来)
1、CheckStyle插件安装(熟悉的可跳过)

如图所示,在应用市场中搜索CheckStyle即可,搜索出来后,点击安装按钮(我这里已经安装了,未安装的情况再卸载按钮的地方会有安装按钮),即可下载安装,安装过程中会有一次重启操作,大家按提示操作即可。
(注:有些版本的SonarQube插件安装是在配置-系统-更新中心)
2、配置自定义的CheckStyle代码规则
配置自定义的CheckStyle代码规则,有两种方法,使用CheckStyle代码规则配置文件和启用SonarQube中的CheckStyle相关代码规则,下面一一介绍:
- 使用CheckStyle代码规则配置文件
注意:这种方法只有新建一个质量配置时才能用,质量配置创建好后,就不能利用配置文件来配置代码规则了。

按照上面两个图,填写好相关信息后,点击
创建按钮。这里有几个问题需要注意下:问题一 配置文件不能以
<?xml version="1.0" encoding="UTF-8"?>开头,否则点击创建按钮时会有如下错误提示:
配置文件中有<?xml?>标签因此要把此标签去掉,直接以
<module>标签开头,如下图所示:
配置文件去掉xml文件头标签问题二 配置文件中不能有重复的规则,否则点击
创建按钮时,会有报错提示,比如:
重复规则错误提示上图中提示ReturnCountCheck进行了重复配置,看一下配置文件

这里我们需要对构造函数和lambda表达式的返回语句个数进行不同的配置,但是SonarQube认为是重复的配置。┑( ̄Д  ̄)┍
问题三 配置文件中不能有
规则模板(规则模板后面介绍),当配置文件中有规则模板,点击创建按钮时,会有报错提示,比如:
`规则模板`错误提示上图错误提示的意思是:规则模板
checkstyle:com.puppycrawl.tools.checkstyle.checks.coding.FinalLocalVariableCheck不能被激活。这条规则是检测从未改变的局部变量是否添加final修饰词,那么如果我们需要添加这条规则,怎么处理呢?留到启用SonarQube中CheckStyle相关代码规则方法去说。
通过使用配置文件的方法配置自定义的CheckStyle代码规则,或多或少还会有其它问题,要根据提示处理配置文件。所以,一般情况下,不建议使用这种方法,事倍功半的说。╥﹏╥
启用SonarQube中CheckStyle相关代码规则

如图所示,在
质量配置中会显示SonarQube中所有已安装编程语言中创建好的规则配置(每个语言都有内置Sonar way的默认配置),可见,刚刚创建的CheckStyle配置中,通过文件已配置了18条规则,接下来我们再进行添加。点击配置名称,进入配置详情页:
质量配置详情点击
更多激活规则
可激活规则列表上图中左边栏的用于筛选的,可从语言、规则类型、标签、资源库等等进行筛选,这里我们要用到
资源库的筛选,选中资源库后,会列举出已安装的插件列表,选中CheckStyle,页面中会筛选出CheckStyle的可配置规则(上图已经筛选好了,显示有136条可配置的规则)。接下来就可以对这136条规则进行配置了,细心的同学可能已经发现了,规则列表中的规则有两类:非模板规则(有
活动按钮,无规则模板的标签)和模板规则(无活动按钮,有规则模板的标签)。所以,我们也分两类讲:- 非模板规则
对于非模板规则,我们直接在规则列表中点击列表项的活动按钮即可,在弹出的对话框中填写属性值,如下图所示:
激活非模板规则如果想先了解下规则的内容,也可以先点击规则名称进入详情页,详情页也有激活的入口。
- 规则模板
对于规则模板,是没有直接的激活按钮的。那么规则模板怎么激活呢?且听下回分解……O(∩_∩)O哈哈~(玩笑脸)
规则模板,需要我们先根据模板创建一条规则,之后再激活创建的规则。接下来说步骤(以上文说的规则模板Final Local Variable为例)- 在规则列表中找到这表规则,点击规则名称进入详情页
规则详情页 - 点击
创建按钮,弹出自定义规则创建框
创建自定义规则根据提示填写相关信息后(子属性根据需要进行填写,不填则使用默认值),点击
创建按钮。
创建成功的规则如下图所示:
在自定义规则下面会有一个创建的规则列表。此时回到之前的规则列表后,会在列表中找到刚刚创建的规则,点击列表项的
活动即可激活。其次,也可以在此页面点击自定义的规则名称,进入详情页
自定义规则详情页在此页面中,可以进行二次
编辑、删除、激活等操作。
- 在规则列表中找到这表规则,点击规则名称进入详情页
- 非模板规则
配置好后,可在配置详情页中点击CheckStyle的链接,以XML的格式查看已配置好的规则,如下图所示:


【转】SonarQube配置自定义的CheckStyle代码规则的更多相关文章
- Knative 实战:如何在 Knative 中配置自定义域名及路由规则
作者 | 元毅 阿里云智能事业群高级开发工程师 当前 Knative 中默认支持是基于域名的转发,可以通过域名模板配置后缀,但目前对于用户来说并不能指定全域名设置.另外一个问题就是基于 Path 和 ...
- SonarQube学习(五)- SonarQube之自定义规则使用
一.前言 古人云:"欲速则不达",最近真的是深有体会.学习也是如此,不是一件着急的事,越是着急越不会. 就拿SonarQube来说吧,去年年末就想学来着,但是想着想着就搁置了,有时 ...
- SonarQube中三种类型的代码规则
https://www.cnblogs.com/guoguochong/p/9117829.html 1.概述SonarQube(sonar)是一个 开源 平台,用于 管理 源代码的 质量 . Son ...
- 实用干货丨如何使用Prometheus配置自定义告警规则
前 言 Prometheus是一个用于监控和告警的开源系统.一开始由Soundcloud开发,后来在2016年,它迁移到CNCF并且称为Kubernetes之后最流行的项目之一.从整个Linux服务器 ...
- Eclipse插件checkstyle 代码风格的检查
插件checkstyle 的安装 方法一: 1.Eclipse中,选择Help->Software Updates->Find and Install 2.选择 Search for ...
- SpringBoot2.x过滤器Filter和使用Servlet3.0配置自定义Filter实战
补充:SpringBoot启动日志 1.深入SpringBoot2.x过滤器Filter和使用Servlet3.0配置自定义Filter实战(核心知识) 简介:讲解SpringBoot里面Filter ...
- [转]Nginx伪静态配置和常用Rewrite伪静态规则集锦
Nginx伪静态配置和常用Rewrite伪静态规则集锦 作者: 字体:[增加 减小] 类型:转载 时间:2014-06-10 我要评论 伪静态是一种可以把文件后缀改成任何可能的一种方法,如果我想把ph ...
- SonarQube+Jenkins+Cppcheck实现C++代码扫描
背景:公司部分项目是由C++进行开发,因此对此有需求. sonarqube:docker化安装(alpine系统),版本8.3.1 (build 34397) jenkins:docker化安装,版本 ...
- SonarQube+jenkins-自动化持续代码扫描
SonarQube+jenkins-自动化持续代码扫描 1.SonarQube 1.1 SonarQube介绍 1.1.1 SonarQube 工作流程 1. 2 Docker方式安装SonarQub ...
随机推荐
- [C/C++] 深拷贝和浅拷贝
·默认拷贝构造函数可以完成对象的数据成员值简单地复制-----浅拷贝 ·对象的数据资源是由指针指示的堆时,默认拷贝构造函数仅作指针值的复制,需要显式定义拷贝构造函数-----深拷贝 首先定义几个点: ...
- SpringBoot 入门学习(HelloWord)
前置知识 1.会利用 maven 构建项目 2.了解 Spring 注解 3.了解 RESTful API 的基本理论 4.SpringBoot 是 SpringMVC 的升级版,但两者没有必然的联系 ...
- 简单配置 Tomcat 的 Server.xml(war包发布)
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" ...
- BZOJ4321 queue2(动态规划)
考虑套路地将1~n依次加入排列.设f[i][j]为已将1~i加入排列,有j对不合法的方案数.加入i+1时可能减少一对不合法的,可能不变,可能增加一对,对于i+1与i的关系再增设0/1/2状态表示i与左 ...
- IE提示是否只查看安全传送的网页内容
IE选项-->安全-->点上面那个地球internet-->点下面那个 自定义级别-->找到“其他”-->显示混合内容,改为启用,重启打开下IE,就可以了
- [Leetcode] Merge two sorted lists 合并两已排序的链表
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...
- win10 update orchestratorservere禁用
1 Windows 10系统中有一项Update Orchestrator Service(更新协调器办事),在当地办事窗口中,我们发现 Update Orchestrator Service 办 ...
- CentOs7 minimal安装后没有ifconfig命令解决方法
没有ifconfig命令目前我了解两个原因: 1./sbin/ifconfig 可以执行,但是ifconfig无法执行.这个解决的时候只需要将/sbin 添加到PATH下就可以了. 2.系统未安装if ...
- Spring源码解析-基于注解依赖注入
在spring2.5版本提供了注解的依赖注入功能,可以减少对xml配置. 主要使用的是 AnnotationConfigApplicationContext: 一个注解配置上下文 AutowiredA ...
- HNOI2002 营业额统计 [Splay]
题目描述 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是 ...