【转】使用sonar为你的代码质量保驾护航
一. 简介
Sonar是一个用于代码质量管理的开放平台,相信大家都不会陌生。Sonar可以集成不同的测试工具,代码分析工具,以及持续集成工具。官方网站https://www.sonarqube.org
二. Sonar的三种用法
- 编写代码时做实时代码检查,有问题直接IDE里提示。参考https://www.sonarlint.org
- 提交代码自动触发检测+辅助code review。插件说明:https://gitlab.talanlabs.com/gabriel-allaigre/sonar-gitlab-plugin
- 定时全局代码检测
这三种方法分别发生在代码开发的3个时间阶段。很容易看到,第1种方式实际上是效率最高的。也推荐大家在自己的IDE里装上这个插件,将bug和不合规的代码扼杀在摇篮中。第3种用法则是一种事后的问题曝光,当发现时bug很可能已经进入master分支。如果没有前面2种用法,bug会持续不断的进入master分支,也缺乏对开发人员的有效提醒。
这篇文章主要说的是第二种方法
三. 为你的工程开启gitlab pipelines
1. 确保你有工程的master权限
2. 若看不见Settings/CICD这一栏,需要先打开Settings/General,确保Sharing and permissions 下的Pipelines不是disable的状态
3. 打开http://git.51.nb/你的工程地址/settings/ci_cd,并Enable sonar runner
4. 在工程根目录添加.gitlab-ci.yml文件(dev分支):
sonar:
stage: test
script:
- ~/sonar.sh
tags:
- sonar
四. 使用场景
点击链接查看,sonar会自动在代码里加comment:
最下方展示该提交文件其他bug:
Sonar自动给你的gitlab添加todos:
场景2:merge request,code review,若存在bug,审核者可选择不予通过
场景3:每次扫描全部代码
.gitlab-ci.yml文件内容:
sonar:
stage: test
script:
- ~/sonar.sh -a
tags:
- sonar
场景4:特定分支扫描
.gitlab-ci.yml文件内容:
sonar:
stage: test
script:
- ~/sonar.sh
tags:
- sonar
only:
- master
- release
- dev
场景5:查看问题+定制化
在gitlab上系统的查看问题还是比较麻烦,我们可以进入http://10.247.22.137:9000/projects 查看问题。注意,这个是为gitlab提交自动扫描专门搭建的最新版的sonar,不同于公司现在用的sonar.51.nb:9000。如果觉得问题检测对于自己的代码块是误报,在经过直属上级的评估后可以将此规则基于该项目降级。
五. 要求
- 对于p0,p1的java应用,强烈建议开启以上代码检测!
- 其他级别的应用视情况开启即可
六. 后续计划
- 任务由单机改为docker化,提升性能。
- 和ares平台打通
结语
相信阅读本文的各位开发同学都不想仅限于代码的搬运工,Sonar就像是个代码经验极其丰富的老师,他会任劳任怨的帮助我们完善自己代码,让我们的code变得更健壮、更规范、更优雅。虽然有时候某些issue看上去不是什么大问题,但即使只是防御代码,也会有它的价值所在。希望大家都能成为有“代码洁癖”的程序猿
【转】使用sonar为你的代码质量保驾护航的更多相关文章
- sonar的安装与代码质量检测实例
说明:sonar依赖数据库. mysql优化 1.笔者使用的是mysql数据库.首先对mysql做简单的优化配置. [root@localhost bin]# cat /etc/my.cnf [mys ...
- 测试框架:使用SONAR分析代码质量
介绍 Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd.checkstyl ...
- Java代码质量监控工具Sonar安装
1. 代码质量七宗罪 Sonar是一个代码质量管理系统.它的帮助文档开篇明义,提出了代码质量的七宗罪.总结的比較到位.最好还是一看: 1. Bug和隐藏Bug(Bugs and Pot ...
- ant+sonar+jacoco代码质量代码覆盖率扫描
使用ant构建的java web项目如何做sonar代码质量扫描?以下就是实际遇到并成功使用的案例一.做sonar扫描的准备工作 1.给web项目增加build.xml构建脚本. 2.下载 ...
- 代码质量检测-Sonar
一. Sonar简介 sonarqube系统是一个代码质量检测工具 由以下四个组件组成(https://docs.sonarqube.org/display/SONAR/Architecture+an ...
- sonar+Jenkins 构建代码质量自动化分析平台
1.Sonar 介绍 Sonar 是一个用于管理代码质量的开源工具,可以分析代码中的bug和漏洞以及Code Smells,支持20多种编程语言的检测,如java,c/c++,python,php等语 ...
- jenkins插件findbugs+pmd+checkstyle结合sonar与maven(java环境代码质量和代码规范管理)
一.下载jdk并安装(最好jdk官网下载解压安装的) 二.下载maven并安装maven 三.安装jenkins及插件 安装checkstyle.pmd.findbugs.maven.sonar等相关 ...
- Linux下SonarQube代码质量平台的安装和使用方法
Sonar简介: Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,Java ...
- Docker 搭建代码质量检测平台 SonarQube
开始搭建 1.获取 postgresql 的镜像 $ docker pull postgres 2.启动 postgresql $ docker run --name db -e POSTGRES_U ...
随机推荐
- Android开发系列(十五):【Android小游戏成语连连看】第一篇
学了一个多月安卓.由于暑假的时候要给朋友说写个小游戏.并且也想检測下自己的能力,所以说从7号開始就着手写这个小游戏了,前前后后带上课到今天总算是写完了,可是写的这个小游戏还是有非常多问 ...
- 绝对路径${pageContext.request.contextPath}用法及其与web.xml中Servlet的url-pattern匹配过程
以系统的一个“添加商品”的功能为例加以说明,系统页面为add.jsp,如图一所示: 图一 添加商品界面 系统的代码目录结构及add.jsp代码如图二所示: 图二 系统的代码目录结构及add.js ...
- Java 格式化数字
; ){ DecimalFormat df = "); String xs = df.format(x); System.out.println(xs); x++; } 将 1 格式化为 0 ...
- PxCook(像素大厨)
PxCook(像素大厨)是一款切图设计工具软件.自2.0.0版本开始,支持PSD文件的文字,颜色,距离自动智能识别. 优点在于将标注.切图这两项设计完稿后集成在一个软件内完成,支持Windows和Ma ...
- django_simple_captcha使用笔记
一.先来官方文档的步骤: Install django-simple-captcha via pip: pip install django-simple-captcha Add captcha t ...
- 【Fiddler】Fiddler抓包
简述 在调试H5页面.APP的网络请求时,常用Fiddler进行抓包,查看网络报文是否如我们设想.当然,Fiddler也可对我们电脑端发出HTTP请求进行抓包. Fiddler是以代理的形式运行的,即 ...
- cat正常,cat重定向到文件可能是乱码;解决办法
文件cat正常,cat重定向到文件可能是乱码:解决办法如下 .vimrc文件中增加如下两行 set fileencoding=utf8 set fileencodings=utf8 据一位老神医说,文 ...
- H3C交换机SNMP配置
1.启动/关闭SNMP Agent服务 在系统视图模式下: 启用:snmp-agent 关闭:undo snmp-agent 注:缺省情况下snmp agent是关闭的 2. 使能或禁止SNMP相应版 ...
- 如何在Oracle中一次执行多条sql语句 (.net C#)
关键是不能换行,要加上begin ...sql... end; 每个SQL用:隔开,end后面必须加: 以下是拷贝于:http://www.cnblogs.com/teamleader/arc ...
- html页面去掉滚动条
有时候特别需要,个别网页要去掉横向滚动条和竖向滚动条,那该怎么去掉呢,很简单,看代码: 让竖条没有: <body style=`overflow:-Scroll;overflow-y:hidde ...