代碼檢查工具sonarqube介紹及使用


親測有效

環境:springboot+gradle+jdk1.8+sonarqube7.4

一、說明:

SonarQube為靜態代碼檢查工具,采用B/S架構,幫助檢查代碼缺陷,改善代碼質量,提高開發速度,通過插件形式,可以支持Java、C、C++、JavaScripe等等二十幾種編程語言的代碼質量管理與檢測。

通過客戶端插件分析源代碼,sonar客戶端可以采用IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式等,官網是這么列舉的很方便集成:

每一種都有自己的分析機制對項目源代碼進行分析和掃描,並把分析掃描后的結果上傳到sonar的數據庫,通過sonar web界面對分析結果進行查看管理

架構圖

 

下載sonarqube包:https://www.sonarqube.org/。現在下載使用的是7.4。下載后是zip格式,linux下和windows下都是這個包,解壓即可。

下載sonarqube中文包:地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases,根據對應的版本,下載對應的sonar-l10n-zh-plugin-***.jar包,下載下來后,把jar放到sonarqube-7.4/extensions/plugins目錄下,

二、配置

配置文件為/conf/sonar.properties。可以設置使用的數據庫和提供的ip和端口。使用postgresql數據庫需要注意不能指定模式名稱,必須使用默認的default。如果不使用需要按照文檔做更多配置來支持。現在配置如下即可

sonar.jdbc.url=jdbc:postgresql://192.169.31.106:5432/sonar

sonar.jdbc.username=postgres

sonar.jdbc.password=123456

sonar.web.host=192.169.31.107

sonar.web.port=9000

數據庫可以不進行配置,若不配置則使用自帶數據庫,不支持數據遷移。Ip為部署機器的ip

三、啟動

Windows下:在sonarqube-7.4/bin目錄下,根據對應的系統版本,選擇對應的文件夾,我的是windows 64位,故選擇windows-x86-64目錄,打開文件StartSonar.bat ,

Linux下:

1、      創建新用戶:adduser sonarUser

2、      改變權限:、chown -R sonarUser:sonarUser  /usr/local/sonarqube-7.4/

3、      切換至普通用戶下,進入bin/linux64啟動下:./sonar.sh console  日志啟動模式;./sonar.sh start 后台啟動模式;第一次啟動可以使用日志模式查看下是否能成功啟動,若沒有問題,停掉后再切換為后台啟動

4、      如果啟動出錯可以查看下/sonarqube-7.4/temp/conf/es的權限是改變了,如果沒有改變則重新執行chown -R sonarUser:sonarUser  /usr/local/sonarqube-7.4/對應目錄

四、gradle集成:

Build.gradle中配置:

plugins {

  id "org.sonarqube" version "2.6.2"

}

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.2"
  }
}
apply plugin: "org.sonarqube"

在build.gradle平級目錄新建gradle.properties配置文件。內容為systemProp.sonar.host.url=http://172.16.31.107:9000。次配置是為了將掃描代碼結果傳送給sonar服務。

在gradle命令行輸入:gradle sonarqube即可進行掃描。

五、打開瀏覽器輸入192.169.31.107:9000訪問掃描結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM