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小洲的一句经典的话:
承受不了,就放弃不丢人
但对我不适用,我从来都是有始有终的。
欠下的债总是要还的
这是电影《无间道》中的经典对白,于我而言,这次深深的感觉到自己的盲区很多,还需要不断地学习和总结。
生活和学习一样,如果心情不好的时候,也是在所难免的。
状态不好,就静下心来,放一放,再去思考它,你会发现,一切其实并不难。
最新文章
- Windows安装Scrapy遇坑解决办
- 线段树区间求最大值(点更新)---I Hate It
- 数据结构(动态树):[国家集训队2012]tree(伍一鸣)
- 用命令行在github新建一个项目
- zoj 2913 Bus Pass
- 浅copy 与 深copy
- arcengine之版本管理
- qt: 获取sql数据表的所有的字段;
- iOS强制横屏或强制竖屏
- Maven项目搭建-Eclipse版
- centos7 安装zookeeper3.4.8集群
- JS模块化写法(转)
- JZYZOJ 2042 多项式逆元 NTT 多项式
- Oracle sql%rowcount 返回影响行数;sql server @@RowCount返回影响行数
- SSO-基本概念
- [iOS]一些第三方库
- debug教程
- css/css3实现未知宽高元素的垂直居中和水平居中
- Windows下使用DOS命令进入MySQL数据库
- 质问微软 WP8.1开发HTTPS 真费劲