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:project
sonar.projectName=My project
sonar.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 code
sonar.sourceEncoding=UTF-8
# Additional parameters
sonar.my.property=value
然後命令列進入自己的專案跟目錄,執行sonar-runner
例:D:\AndroidStudioWork\wodou> sonar-runner 開啟控制檯就能看到視覺化資料了。
如有問題請留言,轉載註明出處。