接觸sonar已經有段時間了,最早是在一個項目組里面聽到這個框架,后來在公司持續集成活動的推動下,也逐漸學習了sonar的具體功能。sonar集成了findbugs,pmd,checkstyle各種靜態代碼檢查工具的功能,並且可以將各種掃描結果組合成一張張漂亮的報告,功能很是強大。下面介紹一下如何使用sonar來自定義javascrpit的掃描規則。
雖然使用過很多次sonar,但都是在別人搭好的環境上使用的,自己還沒有真正搭建過,這里首先介紹一下sonar環境的搭建。
sonar環境搭建
首先到sonar官網上下載其最新版本,我下的是3.5.1。下下來是一個zip包,直接將其解壓到你想要安裝的目錄就好了。
使用H2內存數據庫
sonar服務的啟動是要有數據庫來支持的,sonar本身自帶了H2內存數據庫,可以直接使用。在解壓目錄下的conf目錄下,有一個sonar.properties的配置文件是來保存sonar的配置,如果你使用的是H2數據庫的話,將配置文件中的下面部分代碼注釋去掉即可。
1 2 |
|
在解壓目錄下的extras\database\mysql目錄,有2個mysql的sql文件,其中1個是創建sonar數據庫和用戶的腳本,可以參照這個腳本來創建H2的sonar相關數據庫和用戶。
使用外部數據庫(以mysql為例)
sonar官網強烈建議,如果你的產品只是學習或者練習用的demo,可以使用內存數據庫,否則請使用外部數據庫。sonar支持大部分主流的數據庫,比如mysql,oracle,postgresql,Microsoft SQLServer。
我們以mysql為例,首先安裝mysql(安裝mysql的過程就不再詳細描述,網上有很多),這里要注意將數據庫的字符集設置為UTF-8。安裝完成之后,同樣修改conf目錄下的sonar.properties文件,將mysql部分的配置項打開。然后在mysql中將上面提到的那個創建sonar數據庫和用戶腳本施行一遍。
1 2 3 |
|
啟動服務
數據庫配置完成之后,就可以來啟動web服務了,去到解壓目錄下的bin目錄,找到自己相關系統的目錄,以64位windows系統為例,目錄為:bin\windows-x86-64,運行該目錄下的Startsonar.bat文件,如果啟動沒有報錯的話,就可以在瀏覽器中輸入:http://localhost:9000
,查看sonar的主界面了。
安裝Sonar Runner
上面搭建的只是sonar的服務平台,如果想用sonar來分析自己項目代碼的話,可以有多種方式,比如ant、maven等,而sonar官網上推薦的是使用Sonar Runner來執行分析項目的操作。
首先去到sonar官網下載Sonar Runner的壓縮包,和sonar的壓縮包一樣,先解壓到你要安裝的目錄。然后增加SONAR_RUNNER_HOME這個環境變量,變量值為你runner的解壓目錄,然后將$SONAR_RUNNER_HOME$/bin的加到PATH變量后面(配置過java環境變量的同學都懂的)。這樣就安裝完成了,打開cmd驗證一下,打出sonar-runner -h,如果出現下面的提示信息,即表示你的runner安裝成功了。
1 2 3 4 5 6 |
|
安裝完runner以后,在你的項目根目錄下,增加sonar-project.properties文件,內容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
上面的配置項根據名字和說明大概知道是做什么用的了,填上自己項目中對應的值即可。然后打開cmd窗口,去到你的項目根目錄下,執行sonar-runner命令,這樣sonar就開始分析你的項目代碼了,分析完成之后,在瀏覽器中剛才那個9000端口地址的網頁中就可以看到你的項目了。
安裝Javascript插件
使用管理員的角色登錄sonar,根據這個路徑進入更新中心:Settings > System > Update Center。在Available Plugins窗口找到javascript插件,點擊其中的install按鈕進行安裝(如下圖所示)。安裝完后重啟sonar服務器即可。