做爲一名碼農,曾幾什麼時候,無數次挑燈夜戰,只爲次日爲客戶穩定演示系統,奈何到關鍵時候,會發現代碼中會有不少坑,這個時候,每每是最使人崩潰的。如何能作到提早發現程序潛在的問題,找到隱藏的八阿哥,保證系統的穩定,一直是困擾着咱們的問題。記得之前爲了解決這個問題,部門專門組織每週一次代碼走查,雖然最後狀況有所改善,但費事費力,並未獲得根本上的解決。html
所幸的是,有些大牛開發出了一系列代碼質量檢測工具,給咱們這些碼農帶來了福音。下面就來介紹一款開源的代碼質量管理系統——SonarQube。相信經過下面簡單的介紹,你會跟我同樣有種相見恨晚的感受。mysql
SonarQube(曾用名Sonar(聲納))是一個開源的代碼質量管理系統。它支持C/C++、JavaScript、C#、Java、COBOL、TypeScript、PL/SQL、PL/I、PHP、FLEX、Python、Swift、XML等超過20種編程語言的檢測。Sonar能夠經過插件Findbugs、Checkstyle等工具持續對代碼進行檢測,可使咱們儘早發現項目中的Bugs,漏洞及壞味道,從而保證軟件產品質量。git
操做系統:Windows10github
Java環境:下載 jdk-1.8.0-131-X64.zip,配置Java環境變量(參考:http://jingyan.baidu.com/article/02027811629b941bcc9ce521.html)sql
Maven環境:下載apache-maven-3.5.2-bin.zip,配置Maven環境變量(參考:http://wiki.jikexueyuan.com/project/maven/environment-setup.html)數據庫
Jenkins安裝及配置,請參考上一篇文章,連接:https://my.oschina.net/lsjcoder/blog/1573648。apache
數據庫:mysql-5.6.23-winx64編程
SonarQube下載。首先,到Sonar官網https://www.sonarqube.org/downloads/)
下載安裝包,目前最新版本爲SonarQube 6.7 (LTS *)。將SonarQube解壓到本地任意目錄。windows
配置Sonar數據庫。Sonar默認使用的是H2的內嵌數據庫,內嵌數據庫只能用戶測試場景,本例中使用mysql數據庫,具體配置方法以下:瀏覽器
在mysql中建立sonar數據庫,以用戶名root,密碼admin爲例。打開...\sonarqube-6.6\conf文件夾,找到sonar.properties文件,修改如下幾個地方:
配置數據庫用戶名及密碼:
#sonar.properties sonar.jdbc.username=root sonar.jdbc.password=admin
設置數據庫庫鏈接:
#sonar.properties sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance sonar.jdbc.driverClassName:com.mysql.jdbc.Driver sonar.jdbc.validationQuery:select 1
設置鏈接池:
#sonar.properties sonar.jdbc.maxActive: 20 sonar.jdbc.maxIdle: 5 sonar.jdbc.minIdle: 2 sonar.jdbc.maxWait: 5000 sonar.jdbc.minEvictableIdleTimeMillis: 600000 sonar.jdbc.timeBetweenEvictionRunsMillis: 30000
啓動Sonar有兩種方式:一種,直接執行...\sonarqube-6.6\bin\windows-x86-64\StartSonar.bat;另外一種,將Sonar安裝爲Windows服務,注意必定要以管理員身份運行...\sonarqube-6.6\bin\windows-x86-64\InstallNTService.bat,安裝成功之後,運行...\sonarqube-6.6\bin\windows-x86-64\StartNTService.bat啓動Sonar。Sonar啓動之後,在瀏覽器中輸入地址http://localhost:9000
訪問Sonar主頁。
下載Sonar漢化插件,連接:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.18
,將漢化插件拷貝到...\sonarqube-6.6\extensions\plugins文件夾,重啓Sonar。Sonar重啓之後,在瀏覽器中輸入地址http://localhost:9000
訪問Sonar主頁。
安裝 SonarJava 插件Java代碼分析器;
安裝SonarJS插件,JavaScript代碼分析器;
安裝SonarXML插件,XML分析器;
安裝Web插件,HTML, JSP, JSF, ..代碼分析器;
安裝CSS / SCSS / Less插件,CSS、Less代碼分析器;
安裝SonarC# 插件,C#代碼分析器;
安裝SonarQube :: Plugins :: SCM :: SVN插件;
安裝Checkstyle插件,Provide Checkstyle rules for Java projects;
安裝Findugs 插件,Provide Findbugs rules for analysis of Java projects。
配置SCM權限。
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
)。將SonarQube Scanner 3.0.3安裝包解壓到任意目錄。配置SonarQube Scanner。打開...\sonar-scanner-3.0.3.778-windows\conf文件夾,找到sonar-scanner.properties並以文本編輯器打開,配置以下:
# ----- Default SonarQube server sonar.host.url=http://localhost:9000 # ----- Default source code encoding sonar.sourceEncoding=UTF-8
Jenkins安裝。請參照上一篇文章,連接:https://my.oschina.net/lsjcoder/blog/1573648
。
安裝SonarQube Scanner for Jenkins插件安裝。系統管理->管理插件,找到SonarQube Scanner for Jenkins插件,安裝完成後重啓Jenkins。
配置SonarQube Server。
配置SonarQube Scanner。
項目中增長SonarQube Scanner掃描配置。
當即構建,查看控制檯日誌輸出。
點擊上面的連接,便可打開SonarQube,查看項目分析結果。
在整合流程中,須要注意一下幾點:
至此,Jenkins與Sonar Qube的初步集成工做已初步完成,下面就會針對自動檢測出來的Bugs、漏洞及壞味道,進行逐一修復,還掉之前欠下來的技術債務。
歡迎關注個人微信公衆號: