程序猿福音——sonarqube,代碼質量檢測一條龍服務,本文帶你一探究竟

目的

  • 藉助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:
 - lint
  
lint_code:
  stage: lint
  image:
    name: kiwicom/sonar-scanner:4.3
  allow_failure: true
  only:
    - master
 
  variables:
    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

不僅如此,連各種語言對應的規則都有詳細介紹
在這裏插入圖片描述
這一波,我的確被圈粉了。

繼續探索去了~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章