一个对项目负责的团队代码质量检查是必不可少的,有条件的团队经常有代码review习惯,这样可以使技术团队共同进步,但是一个庞大的工程做代码review其实是很麻烦的,所以就催生了很多的工具,今天我们就来通过工具来对代码进行扫描,通过发现问题并改进问题,使我们的项目代码更简洁,修复隐藏bug。

什么是Sonarqube

Sonarqube 是一个用于代码质量管理的开放平台。通过插件机制,Sonarqube 可以集成不同的测试工具,代码分析工具,以及持续集成工具。

在对其他工具的支持方面,Sonarqube 不仅提供了对 IDE 的支持,可以在 Eclipse 和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonarqube 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

简单来说,Sonarqube就是一个代码质量检测工具,可以通过搭建服务端和使用客户端来对代码进行检测,我们今天就来上手试试吧。

搭建Sonarqube服务器

因为小编环境是mac,还是选择使用docker来搭建服务器环境把。

首先查找镜像docker search sonarqube

然后pull镜像docker pull sonarqube

如果使用传统的搭建还得创建sonarqube需要的对应数据库的脚本再进行关联,但是使用镜像的话这些都内嵌了。

好了开始通过镜像启动容器吧。docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube

镜像启动后就可以访问服务页面了。

访问地址:http://localhost:9000

点击左侧的Log in登录,默认的登录用户名密码都是admin

这样子服务端就安装好了

客户端使用

第一种姿势 纯idea插件查看

因为目前国内大部分程序员都转向Idea了,所以我们使用Idea来作为客户端进行项目代码检测。

首先就是插件的安装。如图所示,小白都看的懂,安装插件SonarLint并重启IDE

重启之后就要配置客户端连接的服务器了,服务器地址和账号密码填写我们之前本地搭建的信息

点击Next的时候会需要创建Token

点击Create Token跳转到我们生成Token的网页,这里我们输入admin创建Token

复制生成的Token到idea里面,填写好即可

验证和使用

接下来就是验证使用了。我们在项目代码目录上右键

会有SonarLint这个选项,点击第一个

可以看到代码检测愉快的跑起来了。

扫描结束以后,可以看到,很多不规范的代码都被扫出来了。

随便点开一个,比如说这个空方法

并且右侧给出了对应的修复示例参考

但不懂英文?没关系啊 ,姿势可不只有这一种!!!

第二种姿势

那么这次我们使用管理台+maven来看如何牛逼的使用它,

登录管理台,点击Markerplace模块,安装中文包

安装完成重启服务

再次登录,熟悉的中文是不是回来了呀!

然后在项目里面加入以下maven依赖

org.sonarsource.scanner.maven

sonar-maven-plugin

3.7.0.1746

展开项目的Maven选项,双击运行,执行完毕后就可以登录管理台查看了。

打开管理台,你会发现产生了一个和你项目名一样的项目,并且各种代码质量指标都标注的清清楚楚!!

我们点进去,点开bug选项随便一处,查看Bug

果然扫出来了一处可能出现bug的代码,假设Get这个枚举对象为null的话,下面的对象getId()方法肯定会出现空指针了。

我们再导入一个一个项目,写几个不规范的代码,看看能不能扫出来。

果然是扫到了有异味的代码。。。比如方法不规范拉,代码里输出日志不规范 了~

这里就不继续陪大家看bug和异味的代码了呀~

检测出了代码规范问题和bug漏洞咋办,改呗~

改完以后就可以早点下班了~~

各位老铁有空可以去尝试玩一玩啊,据说经常做代码review的程序员下班都比普通程序员要早。

结尾

写到结尾了,顺便提一句,有人说为什么不用类似阿里巴巴规约扫描插件,其实在项目开发中也有在用,但是确实只能测试出来一部分阿里定义出来的代码不规范问题,像漏洞和bug和这个就更不能比了,所以千万别有杠精来跟我较劲比较了,我只能说,都用吧!!

写到这里了,点赞转发三连有么,为了你能早点下班~往期推荐

idea 编码扫描插件_用IDEA这样Review代码真牛逼相关推荐

  1. idea 编码扫描插件_代码神器:拒绝重复编码,这款IDEA插件了解一下

    作者:HeloWxlhttp://www.jianshu.com/p/e4192d7c6844 Easycode是idea的一个插件,可以直接对数据的表生成entity.controller.serv ...

  2. es 根据_id查询_京东把 Elasticsearch 用得真牛逼!日均5亿订单查询完美解决

    来源:京东技术(ID: jingdongjishu) 京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况. 我们把订 ...

  3. idea zookeeper插件使用_最新IntelliJ IDEA 神级超级牛逼插件推荐(自用,真的超级牛逼)...

    满满的都是干货 可以选择在 ctrl+alt+s 里的plugins 里进行搜索安装. 当然考虑到直接idea里比较慢,真的是超级龟速!再然后一个个搜索安装太麻烦, 所以我将所有插件打包放在文末.需要 ...

  4. python中脚本是指什么_你用Python写过最牛逼的程序/脚本是什么?

    有网友在 Quora 上提问,「你用 Python 写过最牛逼的程序/脚本是什么?」.本文摘编了 3 个国外程序员的多个小项目,含代码. Manoj Memana Jayakumar, 3000+ 顶 ...

  5. python能写什么脚本_你用 Python 写过哪些牛逼的程序/脚本?

    原标题:你用 Python 写过哪些牛逼的程序/脚本? [导读]:有网友在 Quora 上提问,「你用 Python 写过最牛逼的程序/脚本是什么?」.本文摘编了 3 个国外程序员的多个小项目,含代码 ...

  6. chrome后台扫描插件_被动扫描器之插件篇

    最近被动扫描器的话题如火如荼,好多公司都在做自己的被动扫描器.而获取质量高的流量是被动扫描器起作用的关键.笔者主要开发了两个被动扫描器的插件,r-forwarder 以及 r-forwarder-bu ...

  7. 不收费的数据恢复软件_大杀器一款超牛逼的数据恢复软件,能够帮你找回已删除的各种文件...

    更新凭缘分,高产靠天命. hello,大家好,我是机客. 很久之前就有机友写过委托,希望机客能够推荐一款能够恢复手机上已删除图片的数据恢复软件.当时我并没有完成这项委托,其原因在于目前绝大多数的数据恢 ...

  8. vue商城源码_一个标星 5.2k+ 的牛逼开源商城系统

    关注上方"终端研发部",选择星标, 关键时间,第一时间送达! 来源:GitHub精选 大家好,我是于小二.今天推荐的这个项目是「newbee-mall」,这个名字乍一看我以为叫牛逼 ...

  9. python收集数据程序_用一行Python代码进行数据收集探索!Python真牛逼!

    简易的Pandas之路 任何使用P ython数据的人都会熟悉Pandas包.P andas是大多数行和列格式数据的go-to包. 如果你没有Pandas,请确保在终端中使用pip install安装 ...

最新文章

  1. SAP MM服务类采购申请里的总账科目的修改
  2. 玩转webpack(一)下篇:webpack的基本架构和构建流程
  3. 可视化 nltk_词嵌入:具有Genism,NLTK和t-SNE可视化的Word2Vec
  4. Maven下载Sql Server 2008的驱动包
  5. .net core精彩实例分享 -- 文件与I/O
  6. javascript遍历对象的所有的属性
  7. fbeta_socre使用
  8. UpdateData()函数使用
  9. SpringAOP中的JointPoint和ProceedingJoinPoint使用详解(附带详细示例)
  10. 如何保证缓存与数据库的双写一致性
  11. ArchLinux 主题美化
  12. 最近在学习Floquet理论,主要是想用于稳定性分析
  13. 深入分析 Spring 基于注解的 AOP 实现原理
  14. 2022/03/03js作业第一个不同宽度变色第二个是输入几年几月几日判断是今年的第几天(不算闰年2月为28日)
  15. Ubuntu下与openvpx相关的目录和文件
  16. 一个小时学会Maven(参考资料)
  17. UE4之材质球UV缩放、偏移及旋转
  18. 数据可视化分析工具如何在国内弯道超车,迅速崛起?
  19. 知识丨软件定义汽车的价值
  20. 实习培训记录1-HTML

热门文章

  1. 可视化经典:10幅精妙绝伦的科学视图
  2. Layui前端框架教程_layui视频教程_Layui使用教程
  3. python怎么计算百分比_python计算两个数的百分比方法
  4. 一台计算机两个硬盘怎么设置密码,怎样给硬盘加密码? 两招解决硬盘加密难题...
  5. 我使用Hexo+Github搭建Blog的经验
  6. jQuery淡入浅出
  7. 微信企业号已停止提供企业消息会话服务器,企业微信注册时显示会话服务已经被安装了怎么解决 解决攻略教程大全...
  8. 【MPI编程】矩阵向量乘法--解法二(高性能计算)
  9. 使用nodebb搭建一个论坛
  10. 好用的区块链浏览器--BlockScout安装