一、前言

古人云:“欲速则不达”,最近真的是深有体会。学习也是如此,不是一件着急的事,越是着急越不会

就拿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之自定义规则使用的更多相关文章

  1. SonarQube 自定义规则开发

    SonarQube 自定义规则开发 满足一些特定需求的时候,需要自己开发代码规则. 环境 和前文的演示环境一致. 步骤 开发步骤见 Writing Custom Java Rules 101,这是官方 ...

  2. StyleCop学习笔记——自定义规则

    本文将简单的一步一步的指导这可能有助于学习如何创建自己的规则 1.创建一个项目. Visual Studio创建一个新的类库项目.NET3.5 2.引用两个DLL,StyleCop.dll和Style ...

  3. SonarQube学习入门指南

    1. 什么是SonarQube? SonarQube 官网:https://www.sonarqube.org/ SonarQube®是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码异味.它可 ...

  4. Mybatis学习笔记8 - resultMap自定义结果集映射规则

    一.resultMap自定义结果集映射规则 示例如下: 接口定义: package com.mybatis.dao; import com.mybatis.bean.Employee; public ...

  5. Shiro权限管理框架(五):自定义Filter实现及其问题排查记录

    明确需求 在使用Shiro的时候,鉴权失败一般都是返回一个错误页或者登录页给前端,特别是后台系统,这种模式用的特别多.但是现在的项目越来越多的趋向于使用前后端分离的方式开发,这时候就需要响应Json数 ...

  6. jQquery.validate自定义规则的使用案例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. TweenMax动画库学习(五)

    目录            TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)            Tw ...

  8. Dotfuscator自定义规则中的元素选择

    Dotfuscator是专业的.NET程序代码保护软件.是支持规则自定义的,你可以对重命名.程序控制流.字符串加密等等功能自定义规则.在进行规则自定义过程中,可以通过元素的不同选择,满足自己的程序需要 ...

  9. Docker Data Center系列(五)- 使用自定义的TLS安全认证

    本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 名词说明 CSR: Certificate Sig ...

随机推荐

  1. 使用 swagger 加注解 有的方法显示 有的不显示

    在使用swagger  的时候 ,加完注解 运行后发现,有很多加了注解的没有显示,debug   也有返回数据 ,最终发现,有一个方法中有个参数 是Boolean 类型, 但是这个  参数 我没有添加 ...

  2. 【题解】「CF1352A」Sum of Round Numbers

    应该是纯模拟吧. 直接输入一个字符串,然后一位一位看,如果不是0,就 k++,并计算这个数的真实的值,最后输出就行了. #include<iostream> #include<cst ...

  3. CF1439C Greedy Shopping

    题解 尝试做一下,感觉是每次取一段前缀和,这样就相当于让我们证明在 \(a_i\le 10^{12}\) 时,不可能构造出隔一个取一个的情况(\(n=10^5\)). a[i]: 1, 2, 3, 5 ...

  4. Flask开发技巧之参数校验

    Flask开发技巧之参数校验 目录 Flask开发技巧之参数校验 1.请求参数分类 2.解决方案使用到的库 3.针对url查询参数与一般json格式 4.针对复杂json格式数据 本人平时开发中使用的 ...

  5. STM32系统时钟RCC(基于HAL库)

    基础认识 为什么要有时钟: 时钟就是单片机的心脏,其每跳动一次,整个单片机的电路就会同步动作一次.时钟的速率决定了两次动作的间隔时间.速率越快,单片机在单位时间内所执行的动作将越多.时钟是单片机运行的 ...

  6. 前端js实现九宫格模式抽奖(多宫格抽奖)

    介绍: 前端九宫格是一种常见的抽奖方式,js实现如下,掌握其原理,不论多少宫格,都可以轻松应对.(代码可复制直接运行看效果). 该案例以四宫格入门,可扩展多宫格,奖品模块的布局可自由设置. <! ...

  7. Pytest 系列(27)- allure 命令行参数

    如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 先看看 allure 命令的帮助文 ...

  8. SpringBoot + Layui + JustAuth +Mybatis-plus实现可第三方登录的简单后台管理系统

    1. 简介   在之前博客:SpringBoot基于JustAuth实现第三方授权登录 和 SpringBoot + Layui +Mybatis-plus实现简单后台管理系统(内置安全过滤器)上改造 ...

  9. Flink读写Redis(一)-写入Redis

    项目pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...

  10. DirectX12的初始化

    DirectX12的初始化主要分为以下若干步骤: 创建device和gifactory 创建与GPU通信同步相关的objects,command和fence 创建swap chain 为render ...