一个对项目负责的团队代码质量检查是必不可少的,有条件的团队经常有代码review习惯,这样可以使技术团队共同进步,但是一个庞大的工程做代码review其实是很麻烦的,所以就催生了很多的工具,今天我们就来通过工具来对代码进行扫描,通过发现问题并改进问题,使我们的项目代码更简洁,修复隐藏bug。
什么是Sonarqube
Sonarqube 是一个用于代码质量管理的开放平台。通过插件机制,Sonarqube 可以集成不同的测试工具,代码分析工具,以及持续集成工具。
在对其他工具的支持方面,Sonarqube 不仅提供了对 IDE 的支持,可以在 Eclipse 和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonarqube 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。
简单来说,Sonarqube就是一个代码质量检测工具,可以通过搭建服务端和使用客户端来对代码进行检测,我们今天就来上手试试吧。
搭建Sonarqube服务器
因为小编环境是mac,还是选择使用docker来搭建服务器环境把。
首先查找镜像
代码语言:javascript复制docker search sonarqube
然后pull镜像
代码语言:javascript复制docker pull sonarqube
如果使用传统的搭建还得创建sonarqube需要的对应数据库的脚本再进行关联,但是使用镜像的话这些都内嵌了。
好了开始通过镜像启动容器吧。
代码语言:javascript复制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依赖
代码语言:javascript复制<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.7.0.1746</version>
</plugin>
展开项目的Maven选项,双击运行,执行完毕后就可以登录管理台查看了。
打开管理台,你会发现产生了一个和你项目名一样的项目,并且各种代码质量指标都标注的清清楚楚!!
我们点进去,点开bug选项随便一处,查看Bug
果然扫出来了一处可能出现bug的代码,假设Get这个枚举对象为null的话,下面的对象getId()方法肯定会出现空指针了。
我们再导入一个一个项目,写几个不规范的代码,看看能不能扫出来。
果然是扫到了有异味的代码。。。比如方法不规范拉,代码里输出日志不规范 了~
这里就不继续陪大家看bug和异味的代码了呀~
检测出了代码规范问题和bug漏洞咋办,改呗~
改完以后就可以早点下班了~~
各位老铁有空可以去尝试玩一玩啊,据说经常做代码review的程序员下班都比普通程序员要早。
结尾
写到结尾了,顺便提一句,有人说为什么不用类似阿里巴巴规约扫描插件,其实在项目开发中也有在用,但是确实只能测试出来一部分阿里定义出来的代码不规范问题,像漏洞和bug和这个就更不能比了,所以千万别有杠精来跟我较劲比较了,我只能说,都用吧!!