什么是SonarQube?


SonarQube使用介紹

SonarQube 是一個開源的代碼分析平台, 用來持續分析和評測項目源代碼的質量。

通過SonarQube我們可以檢測出項目中重復代碼, 潛在bug, 代碼規范,安全性漏洞等問題, 並通過SonarQube web UI展示出來。

 

 

SonarQube是管理代碼質量一個開放平台,可以快速的定位代碼中潛在的或者明顯的錯誤,本文將會介紹一下這個工具的安裝、配置以及使用。

一、SonarQube的安裝使用:

下載地址:http://www.sonarqube.org/downloads/

本文下載的版本是sonarqube-6.7.6。

下載完之后,選擇進入具體的版本,本文作者的環境是:D:\sonarqube-6.7.6\bin\windows-x86-64

然后點擊:StartSonar.bat啟動SonarQube。

啟動后顯示SonarQube is up;

地址欄輸入:

http://localhost:9000

 

 

 

表示:SonarQube安裝完成,現在還沒配置數據庫,還不能正式使用。

二、數據庫配置 

1.打開mysql,新建一個數據庫sonar。
2.打開sonarqube安裝目錄下的D:\sonarqube-6.7.6\conf\sonar.properties文件
3.輸入以下數據庫信息:

復制代碼
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
復制代碼

其中:url是數據庫連接地址,username是數據庫用戶名,jdbc.password是數據庫密碼,login是sonarqube的登錄名,sonar.password是sonarqube的密碼
4.重啟sonarqube服務,再次訪問http://localhost:9000,會稍微有點慢,因為要初始化數據庫信息,重啟時候有可能一直卡在那里,重啟服務不生效,這時候可以重啟電腦,然后再次訪問http://localhost:9000,會發現配置生效。
5.數據庫初始化成功后,登錄

選擇常用語言,構建工具。

mvn sonar:sonar \
  -Dsonar.host.url=http://localhost:9000 \
  -Dsonar.login=a82d37888543b88fc2cac796922748d2cae45a14

6.按照下圖的點擊順序,進入插件安裝頁面,搜索框搜索chinese,選擇中文包,安裝中文插件,安裝之后,會自動提醒重啟服務,點擊重啟,重啟完之后,刷新,就看到中文版的頁面

7.在Maven的settings.xml設置sonar信息

其中<sonar.host.url>http://localhost:9000</sonar.host.url>指明了sonar服務器的地址。所以在執行maven命令的時候,<sonar.host.url>指明的服務器必須已運行起來。

復制代碼
  <profiles>
    <profile>
        <id>sonar</id>
        <properties>
            <sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar</sonar.jdbc.url>
            <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
            <sonar.jdbc.username>root</sonar.jdbc.username>
            <sonar.jdbc.password>root</sonar.jdbc.password>
            <sonar.host.url>http://localhost:9000</sonar.host.url> <!-- Sonar服務器訪問地址 -->
        </properties>
    </profile>
  </profiles>
  <activeProfiles>
        <activeProfile>sonar</activeProfile>
  </activeProfiles>
復制代碼

8.執行mvn sonar:sonar命令進行代碼分析。
我們可以在Eclipse中,對一個標准maven工程執行sonar。說明:由於maven對sonar有很好的支持,會自動執行相應的腳本,所以無需在pom中添加sonar說明。
在執行maven進行sonar分析之前,必須確保sonar服務器已經處於運行狀態。本例中sonar服務器運行在localhost:9000上。
首先,執行sonar:sonar命令,最后得到輸出如下輸出。如果輸出”BUILD SUCCESS“說明已經構建成功。

查看分析結果

對於使用sonar自帶服務器來說,在瀏覽器訪問:http://sonar_ip:9000,打開sonar結果頁面。可使用admin/admin賬號登錄進入,可以查看到相關信息

 
 

代碼質量管理平台 -> SonarQube

SonarQube是一種自動代碼審查工具,用於檢測代碼中的錯誤,漏洞以及代碼異常。它可以與您現有的工作流程集成,以便在項目分支和拉取請求之間進行連續的代碼檢查。

靜態代碼分析工具:Checkstyle,FindBugs,PMD,Sonar 思路:我們可以先安裝SonarQube,然后在sonarqube中安裝checkstyle、findbugs、pmd插件,最后在jenkins中通過sonar scanner runner進行遠程調用集成sonarqube,使用checkstyle、findbugs、pmd提高我們的代碼質量! 溫馨小提示

  1. 注意下載SonarQube的時候一定要根據自己的jdk以及mysql版本去下載對應的SonarQube版本!不然后面啟動會出現自動停止!!!
  2. jenkins插件sonar scanner runner的版本要和sonarqube server的版本匹配!
  3. 兩者使用的jdk版本也要對應一致!
步驟總結
1、下載SonarQube運行測試
2、SonarQube配置
3、安裝漢化插件
4、安裝checkstyle、findbugs、pmd插件

5、SonarQube 使用

SonarQube有多種使用方式,eclipse或idea中使用,這里我們使用Maven Scanner

① 配置maven的settings.xml
<profile>
   <id>sonar</id>
     <activation>
       <activeByDefault>true</activeByDefault>
     </activation>
   <properties>
      <sonar.jdbc.url>jdbc:jdbc://localhost:3306/sonarqube</sonar.jdbc.url>
      <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
      <sonar.jdbc.username>root</sonar.jdbc.username>
      <sonar.jdbc.password>root</sonar.jdbc.password>
      <!-- Sonar服務器訪問地址 -->
      <sonar.host.url>http://localhost:9000</sonar.host.url>
   </properties>
</profile>
② 使用

在maven項目中執行如下命令

mvn clean install sonar:sonar

等待 BUILD SUCCESS

在這里插入圖片描述
然后我們就可以訪問 http://localhost:9000/projects 在項目中查看數據信息了~ 如下:

 

 

Sonar是一個用於代碼質量管理的開源平台,用於管理Java源代碼的質量。

通過插件機制,Sonar 可以集成不同的測試工具,代碼分析工具,以及持續集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。

通過不同的插件對這些結果進行再加工處理,通過量化的方式度量代碼質量的變化,從而可以方便地對不同規模和種類的工程進行代碼質量管理。

同時 Sonar 還對大量的持續集成工具提供了接口支持,可以很方便地在持續集成中使用 Sonar。 此外,Sonar 的插件還可以對 Java 以外的其他編程語言提供支持,對國際化以及報告文檔化也有良好的支持。

工作原理

SonarQube 並不是簡單地將各種質量檢測工具的結果(例如 FindBugs,PMD 等)直接展現給客戶,而是通過不同的插件算法來對這些結果進行再加工,最終以量化的方式來衡量代碼質量,從而方便地對不同規模和種類的工程進行相應的代碼質量管理。

SonarQube 在進行代碼質量管理時,會從圖 1 所示的七個緯度來分析項目的質量。

圖 1

 

 

 

SonarQube 可以支持 25+ 種編程語言,針對不同的編程語言其所提供的分析方式也有所不同: 對於所有支持的編程語言,SonarQube 都提供源了代碼的靜態分析功能;

對於某些特定的編程語言,SonarQube 提供了對編譯后代碼的靜態分析功能,比如 java 中的 class file 和 jar 和 C# 中的 dll file 等;

對於某些特定的編程語言,SonarQube 還可以提供對於代碼的動態分析功能,比如 java 和 C# 中的單元測試的執行等。

SonarQube 平台的整體架構如圖 2 所示:

圖 2

 

 

遠程客戶機可以通過各種不同的分析機制,從而將被分析的項目代碼上傳到 SonarQube server 並進行代碼質量的管理和分析,SonarQube 還會通過 Web API 將分析的結果以可視化、可度量的方式展示給用戶。

 
 
 
 
 ######
 


免責聲明!

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



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