SonarQube学习(五)- SonarQube之自定义规则使用
一、前言
古人云:“欲速则不达”,最近真的是深有体会。学习也是如此,不是一件着急的事,越是着急越不会。
就拿SonarQube来说吧,去年年末就想学来着,但是想着想着就搁置了,有时觉得自己才是那个拖延症特别严重的人。
临近年末又捡起来了,关于SonarQube自定义规则部分,我也是苦恼了很久,网上的资料不是很多,但凡是有相关的能用的真的很少,基本是抄来抄去。
一周没学习和更文了,一是这块真的没思路,网上找来的也不好用;二是因为女人「相亲路任重而道远,不多说心塞」心情不好,也不想做任何事情。
后在自动化技术交流群的无业游民—我一阳指贼溜细心帮忙,帮我晚上远程搞定的。
当然,我也在本次实战中学会了怎么排查问题,真的十分感谢这位热心大佬,帮我搞到近晚上十二点,同时也为自己的零基础docker而感到惭愧。
二、SonarQube自定义规则的两种方式
- 使用CheckStyle插件安装
- 使用SonarQube自定义规则开发打包导入jar
三、使用CheckStyle插件安装
1、安装CheckStyle插件
在应用市场中搜索CheckStyle即可,搜索出来后,点击安装按钮(我这里已经安装了,未安装的情况再卸载按钮的地方会有安装按钮),即可下载安装,安装过程中会有一次重启操作,大家按提示操作即可。

2、使用CheckStyle代码规则配置文件
新建规则,以java为例,其他规则请视自己情况调整

按照上面两个图,填写好相关信息后,点击创建按钮。
3、启用SonarQube中CheckStyle相关代码规则

如图所示,在质量配置中会显示SonarQube中所有已安装编程语言中创建好的规则配置(每个语言都有内置Sonar way的默认配置),可见,刚刚创建的CheckStyle配置中,通过文件已配置了18条规则,接下来我们再进行添加。点击配置名称,进入配置详情页:

点击更多激活规则

上图中左边栏的用于筛选的,可从语言、规则类型、标签、资源库等等进行筛选,这里我们要用到资源库的筛选,选中资源库后,会列举出已安装的插件列表,选中CheckStyle,页面中会筛选出CheckStyle的可配置规则(上图已经筛选好了,显示有136条可配置的规则)。
最后,可在配置详情页中点击CheckStyle的链接,以XML的格式查看已配置好的规则,如下图所示:

四、使用SonarQube自定义规则开发打包导入jar
1、编写自定义规则,使用mvn clean package命令打包
2、把target下生成的jar,放在$SONAR_HOME/extensions/plugins 目录,重启SonarQube
3、查看新增规则
可以在Java下面资源库,下面有新增的规则,如下图所示:

4、创建新配置


按照上面两个图,填写好相关信息后,点击创建按钮
5、启用新增规则
点击新建配置,进入详细配置页面

点击更多激活规则

将新增规则添加
找到刚才新增规则,点击批量修改,点击应用,全部加入即可


启用新规则


五、小结
- 第一种方式很鸡肋,虽然看起来最简单,但在你尝试后,会发现这是个巨大的坑,不推荐使用;
- 第二种方式看似简单,但是这个规则的开发,你看不懂代码就别合计了,哈哈,总的来说学习之路真的是任重而道远;
- 这个本不难,主要是配置繁琐,应对方式 耐心;
还记得MC小洲的一句经典的话:
承受不了,就放弃不丢人
但对我不适用,我从来都是有始有终的。
欠下的债总是要还的
这是电影《无间道》中的经典对白,于我而言,这次深深的感觉到自己的盲区很多,还需要不断地学习和总结。
生活和学习一样,如果心情不好的时候,也是在所难免的。
状态不好,就静下心来,放一放,再去思考它,你会发现,一切其实并不难。
SonarQube学习(五)- SonarQube之自定义规则使用的更多相关文章
- SonarQube 自定义规则开发
SonarQube 自定义规则开发 满足一些特定需求的时候,需要自己开发代码规则. 环境 和前文的演示环境一致. 步骤 开发步骤见 Writing Custom Java Rules 101,这是官方 ...
- StyleCop学习笔记——自定义规则
本文将简单的一步一步的指导这可能有助于学习如何创建自己的规则 1.创建一个项目. Visual Studio创建一个新的类库项目.NET3.5 2.引用两个DLL,StyleCop.dll和Style ...
- SonarQube学习入门指南
1. 什么是SonarQube? SonarQube 官网:https://www.sonarqube.org/ SonarQube®是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码异味.它可 ...
- Mybatis学习笔记8 - resultMap自定义结果集映射规则
一.resultMap自定义结果集映射规则 示例如下: 接口定义: package com.mybatis.dao; import com.mybatis.bean.Employee; public ...
- Shiro权限管理框架(五):自定义Filter实现及其问题排查记录
明确需求 在使用Shiro的时候,鉴权失败一般都是返回一个错误页或者登录页给前端,特别是后台系统,这种模式用的特别多.但是现在的项目越来越多的趋向于使用前后端分离的方式开发,这时候就需要响应Json数 ...
- jQquery.validate自定义规则的使用案例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- TweenMax动画库学习(五)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) Tw ...
- Dotfuscator自定义规则中的元素选择
Dotfuscator是专业的.NET程序代码保护软件.是支持规则自定义的,你可以对重命名.程序控制流.字符串加密等等功能自定义规则.在进行规则自定义过程中,可以通过元素的不同选择,满足自己的程序需要 ...
- Docker Data Center系列(五)- 使用自定义的TLS安全认证
本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 名词说明 CSR: Certificate Sig ...
随机推荐
- ARC109F - 1D Kingdom Builder
一行格子,其中小于\(0\)的格子为白色,大于\(n\)的格子为黑色,中间的格子颜色由题目给出. 有一些格子需要被标记.标记按照以下规则进行:选择一个颜色\(c\),找到一个未标记的 旁边有标记点的 ...
- XJOI contest 1592
首先 热烈庆祝"CSP-S 2020全国开放赛前冲刺模拟训练题2"圆满结束!!! 感谢大毒瘤颗粒囊的题目.题目还是很不错的,部分分设置的不合理,各种神仙随便 AK ,蒟蒻只能爆零. ...
- 应用案例——高并发 WEB 服务器队列的应用
在高并发 HTTP 反向代理服务器 Nginx 中,存在着一个跟性能息息相关的模块 - 文件缓存. 经常访问到的文件会被 nginx 从磁盘缓存到内存,这样可以极大的提高 Nginx 的并发能力,不过 ...
- 优化Windows电脑常见方法,提高速度,释放硬盘C盘
开始,我们首先让电脑变得易于使用一,提高开机速度常见的使电脑变卡的原因是:一台电脑同时安装了多个杀毒软件.一台电脑安装多个杀毒软件不仅占用你电脑大量内存.有时甚至会产生冲突,这会导致电脑运行非常缓慢, ...
- Docker部署FastDFS(附示例代码)
1. FastDFS简介 FastDFS是一个开源的分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文 ...
- tp5使用PHPWord(下载引入/composer两种方式)
PHPWORD使用文档 一:引入 tp5.0,tp5.1: 1:composer方式(推荐) a:根目录下执行:composer require phpoffice/phpword b:引入: use ...
- Spark SQL 小文件问题处理
在生产中,无论是通过SQL语句或者Scala/Java等代码的方式使用Spark SQL处理数据,在Spark SQL写数据时,往往会遇到生成的小文件过多的问题,而管理这些大量的小文件,是一件非常头疼 ...
- js下 Day08、DOM案例
一.摇一摇 效果图:
- react第十单元(children的深入用法-React.Children对象上的方法)
第十单元(children的深入用法-React.Children对象上的方法) #课程目标 理解什么是children 掌握React.Children对象上的方法 #知识点 什么是children ...
- 聊聊自学大数据flume中容易被人忽略的细节
前言:老刘不敢保证说的有多好,但绝对是非常良心地讲述自学大数据开发路上的一些经历和感悟,保证会讲述一些不同于别人技术博客的细节. 01 自学flume的细节 老刘现在想写点有自己特色的东西,讲讲自学 ...