項目工程代碼質量檢測神器——SonarQube 的用法


摘自:https://www.imooc.com/article/279446?block_id=tuijian_wz

一.SonarQube簡介

SonarQube 是一款用於代碼質量管理的開源工具,它主要用於管理源代碼的質量。 通過插件形式,可以支持眾多計算機語言,比如 java, C#, go,C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等。sonar可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具來檢測你的代碼,幫助你發現代碼的漏洞,Bug,異味等信息。

Sonar 不僅提供了對 IDE 的支持,可以在 Eclipse和 IntelliJ IDEA 這些工具里聯機查看結果;同時 Sonar 還對大量的持續集成工具提供了接口支持,可以很方便地在持續集成中使用 Sonar。 

二.安裝SonarQube

1. 環境准備:

(1)jdk

(2)sonarqube下載:https://www.sonarqube.org/downloads/

(3)sonar-scanner下載:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

(4)MySql數據庫

(5)操作系統:本次以windows環境為例

2. 具體安裝與配置過程

(1)分別下載sonarqube和sonar-scanner安裝包到本地之后進行解壓

https://img2.sycdn.imooc.com/5c6e69af00018b1808340227.jpg

(2)啟動MySQL數據庫,創建sonar數據庫即可。

(3)進入sonarqube解壓縮之后的文件目錄中,進入conf文件下,找到sonar.properties文件,並向其中添加MySQL數據庫的連接配置信息如下:

1
2
3
4
5
6
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode= true &characterEncoding=utf8&rewriteBatchedStatements= true &useConfigs=maxPerformance&useSSL= false
sonar.jdbc.username=root
sonar.jdbc. password =root
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar. password =admin

(4)進入sonar-scanner解壓縮之后的文件目錄中,進入conf文件下,找到sonar-scanner.properties文件,並向其中添加MySQL數據庫的連接配置信息如下:

1
2
3
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode= true &characterEncoding=utf8&rewriteBatchedStatements= true &useConfigs=maxPerformance&useSSL= false
sonar.jdbc.username=root
sonar.jdbc. password =root

(5)至此,Sonar的基本配置就已經完成了,啟動它

進入sonarqube解壓縮之后的文件目錄中,進入bin目錄下,找到相對應操作系統的啟動環境(StartSonar.bat)進行啟動服務。

我的windows64位系統,具體是:C:\soft\SonarQube\sonarqube-7.6\bin\windows-x86-64\StartSonar.bat,點擊執行StartSonar.bat文件啟動服務

(7)進入數據庫中,你會看到生成了大量的數據表,如下:

https://img1.sycdn.imooc.com/5c6e70a0000157f304560856.jpg

(8)在瀏覽器上訪問:http://localhost:9000,出現如下頁面信息,表示sonar安裝成功,

https://img2.sycdn.imooc.com/5c6e6d3c0001a54409460597.jpg

點擊登錄進行登錄,賬戶:admin,密碼:admin,即可進入

(9)安裝中文語言包,搜索chinese Pack,進行安裝即可

https://img3.sycdn.imooc.com/5c6e6e13000197df19200930.jpg

安裝成功,需要重啟StartSonar.bat服務,即可看到如下效果。

https://img2.sycdn.imooc.com/5c6e70cd0001d6c313230829.jpg

到這里已經完成了安裝。

 

3. 啟動失敗及閃退問題

(1)如果在重啟StartSonar.bat服務的時候失敗了,你可以啟動進程管理器,關閉所有java.exe服務,然后再次啟動該服務即可

(2)如果出現啟動StartSonar.bat服務之后,過段時間服務閃退,你可以進入sonarqube解壓目錄下的logs文件下,查看web.log日志查看出錯的日志信息,進行解決。

三.使用SonarQube

1. 配置sonar-scanner的環境變量

(1)windows環境下進入高級系統設置環境變量下進行配置,

新建環境變量:

變量名:SONAR_RUNNER_HOME

變量值:C:\soft\SonarQube\sonar-scanner-3.3.0.1492-windows    (此處是你所下載的sonar-scanner解壓之后所在的文件)

https://img3.sycdn.imooc.com/5c6e71d7000191e304180457.jpg

(2)編輯Path環境變量,輸入內容: ;%SONAR_RUNNER_HOME%\bin;   (注意分號; 是英文狀態下的),之后保存退出

(3)以管理的身份啟動cmd命令窗口,查看sonar-scanner的版本信息:sonar-scanner -v,如下:

https://img1.sycdn.imooc.com/5c6e7323000135e306590203.jpg

說明環境變量配置成功

2. 新建配置文件sonar-project.properties

打開要進行代碼分析的項目根目錄,新建sonar-project.properties文件

https://img2.sycdn.imooc.com/5c6e73ae00011c4307790452.jpg

文件內容輸入如下信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#projectKey是項目的唯一標識,不能出現重復,可隨意起
sonar.projectKey=項目標識,隨便起即可
# this is the name displayed in the SonarQube UI,不能是中文
sonar.projectName=你的項目名稱
# 項目的版本號
sonar.projectVersion=0.5
# 項目的代碼的編碼格式
sonar.sourceEndcoding=UTF-8
# 項目的語言
sonar.language=java
# 項目的源代碼目錄
sonar.sources=src
# 項目的編譯生成的class文件的所在目錄
sonar.java.binaries=target/test-classes

之后保存

3. 啟動StartSonar.bat服務,並以管理員的身份啟動一個cmd命令窗口,cd命令進入項目的根路徑下,執行命令:sonar-scanner,開始對你的代碼進行質量審核。你會看到如下信息:

https://img4.sycdn.imooc.com/5c6e7571000164ef06730880.jpg

4. 之后訪問http://localhost:9000/, 並進行登錄admin/admin,即可查看代碼審查結果信息,如下

https://img4.sycdn.imooc.com/5c6e76950001f00613310745.jpg

https://img4.sycdn.imooc.com/5c6e75f600014a8f13390732.jpg

哇,好多bug,漏洞,然后你就慢慢有針對性的檢查自己的代碼吧。

 

總結:代碼有bug是在所難免的,但是我們作為開發人員是可以避免出現部分bug的,這就要求我們規范自己的代碼習慣,思考發現的問題,及時改進,保證下次寫代碼不會再犯,做到努力提高自己的代碼質量,追求代碼的極致完美。

好了,分享就到這里,感謝我的美女同事,讓我認識了這個sonar工具!寫出此文與諸君分享,互相學習,共同進步!

 


免責聲明!

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



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