最近比較關注devops相關的文章,嘗試搭建sonarqube服務,進行代碼質量的分析和管理,先記錄下本地環境的搭建和分析過程。
一、sonarqube服務搭建
官網地址:http://www.sonarqube.org/

選擇了當前最新版本,sonar是拆箱即用的,當然你本地的jdk環境得預先安裝好,網上看到jdk支持1.5+,但沒試過最新的版本是否要提高jdk的版本,我本地環境變量指定的是
jdk1.6.
解壓后,可以在bin目錄下看到不同操作系統的目錄,我的是win7 64bit

進入對應的目錄,點擊StartSonar.bat啟動

啟動完畢后,可通過默認端口進行訪問,sonar可以指定數據庫,這里采用默認數據庫,需要用別的數據庫的同學可以通過conf目錄下配置文件修改

打開后界面如下,登錄賬號默認是admin/admin,需要漢化的同學點擊配置=》系統=》更新中心,找到chinese Pack進行安裝后重啟生效

至此我們的sonar服務已經搭建完畢,接下來開始對代碼進行分析。
二、如何進行分析
首先安裝分析工具sonar-scanner

scanner需要jdk1.7+,我本地默認是jdk1.6,因此修改啟動文件,指定jdk版本為1.7;
為了在任何目錄啟動scanner,將啟動目錄添加至環境變量Path.
找一個你的項目工程,在根目錄添加sonar-project.properties

我們來看下配置文件的內容
# 工程的key和name維護成一樣即可
sonar.projectKey=weike_open
sonar.projectName=weike_open
#當前工程的版本
sonar.projectVersion=1.7.1.0
#進行掃描分析的代碼頂級目錄
sonar.sources=src
#編譯文件存放的目錄
sonar.binaries=bin
# 分析的語言
sonar.language=java
# 源碼編碼格式
sonar.sourceEncoding=UTF-8
接着我們通過doc窗口進入工程根目錄,執行sonar-runner(sonar-scanner是新的命名,命令還是runner)就可以開始代碼的掃描分析了。
第一次掃描遇到了一個問題,因為低版本的svn版本信息會保存在每個文件中,sonar在分析代碼時,對svn版本文件不識別導致分析中斷。
解決方法如下

只要關閉對svn版本文件的掃描即可。
分析完畢后,可以在主頁看到分析后的統計信息,像技術債務時間、問題代碼、代碼的統計信息等等

希望本文對使用sonar來進行代碼質量管理的同學有所幫助,早日償還技術債務。
