利用Sonar定制自定義JS掃描規則(一)——sonar環境搭建


接觸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數據庫的話,將配置文件中的下面部分代碼注釋去掉即可。

sonar.properties
1
2
#sonar.jdbc.url: jdbc:h2:tcp://localhost:9092/sonar #sonar.jdbc.driverClassName: org.h2.Driver 

在解壓目錄下的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數據庫和用戶腳本施行一遍。

sonar.properties
1
2
3
#----- MySQL 5.x # Comment the embedded database and uncomment the following line to use MySQL #sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true 

啟動服務

數據庫配置完成之后,就可以來啟動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
usage: sonar-runner [options]  Options:  -h,--help Display help information  -X,--debug Produce execution debug output  -D,--define <arg> Define property 

安裝完runner以后,在你的項目根目錄下,增加sonar-project.properties文件,內容如下:

sonar.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
# required metadata sonar.projectKey=my:project sonar.projectName=My project sonar.projectVersion=1.0  # optional description sonar.projectDescription=Fake description  # path to source directories (required) sonar.sources=srcDir1,srcDir2  # path to test source directories (optional) sonar.tests=testDir1,testDir2  # path to project binaries (optional), for example directory of Java bytecode sonar.binaries=binDir  # optional comma-separated list of paths to libraries. Only path to JAR file is supported. sonar.libraries=path/to/library/*.jar,path/to/specific/library/myLibrary.jar,parent/*/*.jar  # The value of the property must be the key of the language. sonar.language=java  # Additional parameters sonar.my.property=value 

上面的配置項根據名字和說明大概知道是做什么用的了,填上自己項目中對應的值即可。然后打開cmd窗口,去到你的項目根目錄下,執行sonar-runner命令,這樣sonar就開始分析你的項目代碼了,分析完成之后,在瀏覽器中剛才那個9000端口地址的網頁中就可以看到你的項目了。

安裝Javascript插件

使用管理員的角色登錄sonar,根據這個路徑進入更新中心:Settings > System > Update Center。在Available Plugins窗口找到javascript插件,點擊其中的install按鈕進行安裝(如下圖所示)。安裝完后重啟sonar服務器即可。


免責聲明!

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



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