目的

  • 借助sonar平台分析和管理项目代码质量
  • sonar是一个用于代码质量管理的开放平台,sonar提供潜在bug、漏洞、代码重复率等指标,进而提升项目代码质量。

sonar-scanner 命令

  • sonar-scanner作用是扫描项目代码并发送扫描结果到sonar平台

使用sonar-scanner的docker镜像可省去sonar-sanner命令所需环境搭建,更现代化:

$ docker pull kiwicom/sonar-scanner:4.3
$ cd 项目代码目录
$ docker run -it --user=root --net=host --rm --name sonar-scanner -v `pwd`:/usr/src kiwicom/sonar-scanner:4.3 sonar-scanner -X -Dsonar.projectKey=项目名称 \-Dsonar.sources=./gateway \-Dsonar.host.url=地址\-Dsonar.login=240b6e0e62XXXXXXXXX
  • -it:交互形式执行
  • –user=root:容器中使用root用户权限
  • –net=host:容器使用宿主机网络环境
  • –rm:容器执行完后即删除
  • –name sonar-scanner:容器名称
  • -v:当前项目目录挂载到容器/usr/src目录下
  • -X:sonar-scanner命令参数,能打印出有用info信息

gitlab-ci中集成sonar-scanner命令

.gitlab-ci.yml文件中的内容:以JS语言为例,检测需要排除node_modules文件夹

stages:- lintlint_code:stage: lintimage:name: kiwicom/sonar-scanner:4.3allow_failure: trueonly:- mastervariables:SONAR_HOST_URL: 'http://sonar.某某.com/'SONAR_LOGIN: 'dcbc13e某某某'SONAR_PROJECTKEY: '项目名称某某'SONAR_SOURCES: './src'script:- sonar-scanner -X -Dsonar.projectKey=$SONAR_PROJECTKEY -Dsonar.sources=$SONAR_SOURCES -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN- sonar-scanner -X -Dsonar.projectKey=$SONAR_PROJECTKEY -Dsonar.sources=$SONAR_SOURCES -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN -Dsonar.exclusions='**/node_modules/**'
  • only:指定stage分支执行本任务
  • SONAR_HOST_URL:sonar平台
  • SONAR_LOGIN:sonar平台登录凭证,sonar平台【我的账户->安全->生成令牌】
  • SONAR_PROJECTKEY:项目名称
  • SONAR_SOURCES:项目扫描路径

将代码推到远程分支,sonar开始检测代码质量


出现绿色的Job succeeded 表明已完成,可以去sonar平台看看检测结果了。

查看结果


emm…勉勉强强吧,这重复率还是有点高的哈,继续看看详细的结果


都不是什么大的bug哈,全是一些可以进行优化的代码片段


有一说一,sonarqube是真的很贴心了

它不仅能把问题点标出来,还能给你提供相应的解决办法。

评级可还行,能拿五好学生,顺利毕业了。

支持哪些语言

各路英雄好汉最关心的问题来了,本文的示例是基于JavaScript语言,那么sonarqube还能支持哪些编程语言的代码检测呢?

  1. Java
  2. Python
  3. JavaScript
  4. PHP
  5. TypeScript
  6. HTML
  7. Kotlin
  8. Go
  9. YAML
  10. CSS
  11. XML
  12. JSP

不仅如此,连各种语言对应的规则都有详细介绍

这一波,我的确被圈粉了。

继续探索去了~

程序猿福音——sonarqube,代码质量检测一条龙服务,本文带你一探究竟相关推荐

  1. Docker运行sonarqube (代码质量检测平台)

    onarqube是什么 SonarQube是用于持续检查代码质量的开源平台. 可用于持续集成,持续部署流程中的代码检测环节. idea和jenkins都提供了插件配合使用. liunx推荐配置环境 l ...

  2. Docker搭建SonarQube代码质量检测工具

    SonarQube简介 SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量. 通过插件形式,可以支持众多计算机语言,比如 java, C#, go,C/C++, PL/S ...

  3. 基于SonarQube代码质量检测

    基于SonarQube代码质量管理 SonarQube是什么? 官网:https://www.sonarqube.org/ Sonar (SonarQube)是一个开源平台,用于管理源代码的质量. S ...

  4. 皕杰报表之小程序代码质量检测

    最近在被云开发免费的份额,由于一些原因把小程序开发工具升级到了最新版本,新版本上传需要代码质量检测. 一.主包 其中按照官方说明需要提前知道的可优化项: 1. 代码包不包含插件大小超过 1.5 M [ ...

  5. 代码质量检测-SonarQube

    文章目录 前言 一.SonarQube是什么? 二.SonarQube安装步骤 1.docker安装 2.docker-compose安装 3. 访问SonarQube 4. 配置SonarQube ...

  6. Docker搭建SonarQube代码质量检查平台

    SonarQube是一个用于持续检查代码质量的开源平台 Docker搭建SonarQube代码质量检查平台 快速开始 version: '3' services:mydb:image: postgre ...

  7. DevOps之持续集成SonarQube代码质量扫描

          SonarQube是一个用于代码质量检测管理的开放平台,可以集成不同的检测工具,代码分析工具,以及持续集成工具.SonarQube 并不是简单地把不同的代码检查工具结果直接显示在 Web ...

  8. 个推如何管理亿级代码的质量?持续集成SonarQube 代码质量管理系统

    2019独角兽企业重金招聘Python工程师标准>>> 平台架构 如下图所示,整个代码管理平台由,Analysers, Server , Database 组成. 当然,根据需求不同 ...

  9. java检测工具_常用Java代码质量检测评估工具

    常用Java代码质量检测评估工具 1. PMD from http://pmd.sourceforge.net/ PMD能够扫描Java 源代码,查找类似以下的潜在问题: 可能的bug--try/ca ...

最新文章

  1. python 使用 redis expire属性设置访问时间间隔
  2. spring cloud集成 consul源码分析
  3. 【分享】(性能优化)思考数据列表中“特殊的列”
  4. 百度之星12月30号题目之维基解密
  5. 使用笛卡尔积 cross join解决傻傻的问题
  6. leetcode161. 相隔为 1 的编辑距离
  7. LeetCode 1554. 只有一个不同字符的字符串(枚举)
  8. 知道路程时间求加速度_人教版高中物理必修一重点知识点—加速度分析与讲解...
  9. linux的文件与目录,linux-文件与目录
  10. The Python Debugger Command
  11. win7系统不能加入工作组计算机,技术员教你解决win7系统工作组计算机无法访问的修复办法...
  12. 小乌龟解决反向线上代码冲突
  13. 【收集】个人认为比较实用的电脑工具软件(附带安装包下载)
  14. EXCEL 中数据分析常用统计方法介绍(一)
  15. 计算机无线网络计算机文件共享,两台电脑怎么用无线网络共享文件?
  16. java.lang.null_java.lang.nullpointerexception 怎么解决
  17. 懒虫读诗 (树形dp+分组背包)
  18. iOS开发实用技术之音频播放(QQ音乐)
  19. DVWA通过攻略之SQL注入
  20. Android短视频开发

热门文章

  1. 11月编程语言排行冠军揭晓,稳
  2. EEGLAB安装、EDF数据导入、EEG预处理(Matlab)
  3. HDMI各版本的区别
  4. python-requests请求超时解决方案
  5. springboot使用arthas-spring-boot-starter引入arthas方案
  6. 阿里图标库在旧有的iconfont中添加新的图标
  7. U盘插入Mac电脑无反应什么原因?用NTFS for Mac解决简直人生开了挂!
  8. 《HTML入门笔记--HTML常用标签》
  9. 【MySQL】MyCat分库分表分片规则配置详解与实战(MySQL专栏启动)
  10. p设计一个Person类,属性有姓名、年龄、性别,创建方法personInfo,打印输出这个人的信息;创建Student类,继承Person类,属性有学院college,班级Group,重写父类Per