1. 程式人生 > >Android 程式碼檢查工具SonarQube

Android 程式碼檢查工具SonarQube

     程式碼檢查工具能幫我們檢查一些隱藏的bug,程式碼檢查工具中sonar是比較好的一個。官網

Sonar 概述


        Sonar 是一個用於程式碼質量管理的開放平臺。通過外掛機制,Sonar 可以整合不同的測試工具,程式碼分析工具,以及持續整合工具。與持續整合工具(例如 Hudson/Jenkins 等)不同,Sonar 並不是簡單地把不同的程式碼檢查工具結果(例如 FindBugs,PMD 等)直接顯示在 Web 頁面上,而是通過不同的外掛對這些結果進行再加工處理,通過量化的方式度量程式碼質量的變化,從而可以方便地對不同規模和種類的工程進行程式碼質量管理。
        在對其他工具的支援方面,Sonar 不僅提供了對 IDE 的支援,可以在 Eclipse 和 IntelliJ IDEA 這些工具裡聯機檢視結果;同時 Sonar 還對大量的持續整合工具提供了介面支援,可以很方便地在持續整合中使用 Sonar。


        此外,Sonar 的外掛還可以對 Java 以外的其他程式語言提供支援,對國際化以及報告文件化也有良好的支援。
主要特點
  · 程式碼覆蓋:通過單元測試,將會顯示哪行程式碼被選中
  · 改善編碼規則
  · 搜尋編碼規則:按照名字,外掛,啟用級別和類別進行查詢
  · 專案搜尋:按照專案的名字進行查詢
  · 對比資料:比較同一張表中的任何測量的趨勢

Sonar 的安裝

         Sonar 是 Codehaus 上面的一個開源專案,使用的是 LGPL V3 軟體許可。我們可以在其官方網站上下載其原始碼及安裝包。其原始碼需要使用分散式版本控制軟體 Git 進行檢出(Check Out),命令列方式如下:


git clone git://github.com/SonarSource/sonar.git
        本文主要介紹 Sonar 的使用方法和Android studio外掛安裝方法,只需要到 Sonar 網站下載最近的發行包即可,本文寫作時最新的版本為4.5.1,下載 zip 包後,直接解壓到任意目錄,由於 Sonar 自帶了 Jetty 6 的應用伺服器環境,所以不需要額外的安裝就可以使用,值得一提的是 Sonar 也支援部署在 Apache Tomcat 應用伺服器中。在 windows 環境中,直接啟動 Soanr 的 bin 目錄下 windows-x86-64\StartSonar.bat 即可。然後在瀏覽器中訪問:http://localhost:9000/ 如圖(漢化需要額外下載漢化包):


文件和一些jar包和外掛安裝點選run analysis:


首先登入配置專案:


預設是:admin,admin。

登入後如圖:


點選Provisioning,點選建立 如圖,輸入關鍵字和專案名稱(最好和檢查程式碼的專案名稱一致):


其他的設定不是必須的,可以略過。

如果不用整合外掛比較麻煩且不容易使用,下面介紹下在Android studio中安裝使用sonar外掛(intellij idea類似)。如圖:


點選安裝後重啟一下就安裝好了。

下面說一下配置如下:


安裝完後點擊sonarqube選項,新增一個server,輸入預設地址和使用者名稱密碼,測試連線,ok。

 右擊專案關聯後臺server專案:


輸入配置的專案名稱,ok:


右擊analyze--》inspect code(還可以選擇run inspection by name 輸入 sonarqube issue),控制檯就能看到結果了。


分析結果:


以上是外掛形式,但是沒有圖形化的展示,下面介紹另一種實現方式:

效果圖:


這種是不是就清楚多了,下面是詳細步驟:

執行分析有好幾種方法,這裡使用官方建議的方法,下載SonarQube Runner

解壓到任意目錄,最好不要包含中文路徑。

設定環境變數SONAR_RUNNER_HOME,值設定為你的解壓目錄。

把解壓目錄/bin 新增到path環境變數。開啟命令列輸入sonar-runner -h

如果配置成功輸出:

usage: sonar-runner [options]Options:-D,--define <arg>     Define property-e,--errors           Produce execution error messages-h,--help             Display help information-v,--version          Display version information-X,--debug            Produce execution debug output

在需要除錯的專案根目錄下新增檔案:sonar-project.properties

輸入以下內容:

# Required metadata# key 和 name 就是建立專案時輸入的欄位,這裡填寫自己的專案name和key,其他不用管。sonar.projectKey=my:projectsonar.projectName=My projectsonar.projectVersion=1.0# Path to the parent source code directory.# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.# Since SonarQube 4.2, this property is optional if sonar.modules is set. # If not set, SonarQube starts looking for source code from the directory containing # the sonar-project.properties file.sonar.sources=src# Encoding of the source codesonar.sourceEncoding=UTF-8# Additional parameterssonar.my.property=value

然後命令列進入自己的專案跟目錄,執行sonar-runner

例:D:\AndroidStudioWork\wodou> sonar-runner 開啟控制檯就能看到視覺化資料了。


如有問題請留言,轉載註明出處。