Windows系統配置SonarQube本地服務

Windows系統配置SonarQube本地服務

SonarQube簡介

SonarQube

SonarQube 是一個用於管理源代碼質量開放平臺,能夠從多個維度檢測代碼質量,快速的定位代碼中潛在的或者明顯的 Bug、錯誤,提供重複代碼、編碼標準、單元測試、代碼覆蓋率、代碼複雜度、潛在Bug、註釋和軟件設計報告。支持包括 Java、Python、Php、C/C++、C#、HTML、JavaScript、PL/SQL、Objective C 等二十多種編程語言的代碼質量管理與檢測。經過插件機制,SonarQube能夠繼承不一樣的測試工具,代碼分析工具,以及持續集成工具。可與IDE(如:Eclipse、IDEA等)集成使用。mysql

SonarQube 並非簡單地直接將各類質量檢測工具(例如 FindBugs,PMD 等)的結果展示給客戶,而是經過不一樣的插件算法來對這些結果進行再加工,最終以量化的方式來衡量代碼質量,從而方便地對不一樣規模和種類的工程進行相應的代碼質量管理。更多相關介紹不在此贅述。git


SonarQube架構

引用SonarQube官網提供的架構圖, SonarQube 架構 經過圖中描述整個SonarQube的分析分爲幾個部分:github

  • 待分析的項目源代碼
  • SonarQube Scanner 源代碼分析工具
  • SonarQube Server 提供服務,用來提供分析報表及解決方法
  • SonarQube Database 相關分析數據的持久化存儲

本文則根據主要描述,記錄本地Windows下SonarQube Server及Databse的配置。主要環境以下:web

  • Windows 10
  • SonarQube 6.7 LTS
  • MySQL 5.7.21
  • JDK1.8.0_152
  • Maven 3.5.3

SonarQube服務環境配置

基本環境要求

本文使用的版本爲 SonarQube 6.7.5 LTS , 官方下載地址。安裝的基本要求以下:算法

  • 運行SonarQube的惟一先決條件是在您的計算機上安裝Java(Oracle JRE 8或OpenJDK 8
  • SonarQube服務器須要至少2GB的RAM纔能有效運行
  • 須要的磁盤空間量取決於使用SonarQube分析的代碼量
  • MySQL 5.6 +,僅支持InnoDB存儲引擎,但不支持MyISAM
  • 要得到SonarQube提供的完總體驗,必須在瀏覽器中啓用JavaScript,IE11+,其餘瀏覽器建議最新版本

更多環境要求,見官方文檔官方,詳見。 另,須要分析Maven項目時,須要本地下載配置Maven,版本Maven 3.0+。sql


SonarQube環境配置

官網下載SonarQube後,解壓到任意目錄(建議,非中文目錄),目錄結構大體以下:數據庫

SonarQube 目錄結構

各目錄做用以下:編程

  • bin 此目錄放置各操做系統(LInux、Windows、MacOS)用於啓動 SonarQube 服務的工具、腳本;
  • conf 此目錄存放SonarQube相關配置文件;
  • data 此目錄包含嵌入式數據庫(H2數據庫引擎)的數據,建議只用於測試和演示;
  • elasticsearch 此目錄放置elasticsearch檢索引擎相關內容;
  • extensions 此目錄存放SonarQube的插件、 擴展jar 包;
  • lib 此目錄存放SonarQube所依賴的 jar 包;
  • logs 此目錄存放SonarQube相關日誌信息;
  • tmp此目錄包含服務器所需的臨時數據,服務器啓動時不要清理;
  • web 此目錄存放 SonarQube web 服務的靜態資源。

SonarQube服務數據庫配置

SonarQube 支持大多數主流關係型數據庫(例如 Microsoft SQL Server, MySQL, Oracle, PostgreSQL 等),默認使用H2數據庫,能夠直接運行啓動,此處配置MySQL數據庫。windows

  1. MySQL建立數據庫瀏覽器

    CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
  2. 分配用戶及權限

    CREATE USER 'sonar' IDENTIFIED BY 'sonar';
         GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; 
         GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
    	 FLUSH PRIVILEGES;
  3. 修改SonarQube配置文件 找到 ..\sonarqube-6.7.5\conf 目錄下的 sonar.properties,首先搜索 # User credentials. 配置JDBC鏈接的用戶名及密碼(此處爲上步建立的用戶):

    sonar.jdbc.username=sonar
    	sonar.jdbc.password=sonar

    搜索 MySQL 5.6 or greater ,配置數據庫連接 URL :

    sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

    到此完成了 MySQL 的簡單配置

    SonarQube 配置MySQL

注意: SonarQube支持的爲InnoDB引擎,能夠在MySQL配置文件內的 [mysqld] 下配置 default-storage-engine=INNODB 來實現建立的表默認使用 InnoDB 引擎。


啓動服務

在目錄 ..\sonarqube-6.7.5\bin\windows-x86-64 下,雙擊 StartSonar.bat 啓動服務,出現 [o.s.a.SchedulerImpl] Process[es] is up 提示時,表示 elasticsearch 啓動成功

SonarQube 服務啓動

此時,能夠在瀏覽器內訪問 http://localhost:9000 來登錄SonarQube管理頁面 (注意,運行期間不要關閉命令行

enter description here

首次啓動時,會在配置MySQL數據庫內生成相關的表及初始化數據

SonarQube 數據庫初始化

到此SonarQube服務啓動成功,如想修改訪問端口等內容,在 ..\sonarqube-6.7.5\conf\sonar.properties文件內修改。

在目錄 ..\sonarqube-6.7.5\bin\windows-x86-64 下能夠看到多個bat批處理文件

  • InstallNTService.bat 安裝sonarqube爲系統服務
  • StartNTService.bat 啓動sonarqube系統服務
  • StartSonar.bat 命令行啓sonarqube服務(關閉命令行即關閉服務)
  • StopNTService.bat 中止sonarqube系統服務
  • UninstallNTService.bat 卸載sonarqube系統服務

爲了方便,且防止命令行意外關閉致使服務中止等狀況,能夠經過管理員方式運行 InstallNTService.bat ,將SonarQube服務添加到系統服務中, 或使用 sc 命令自行添加。如出現服務添加到系統服務後,啓動當即中止的狀況,則經過查看 ..\sonarqube-6.7.5\log 目錄下的日誌來查看問題,如無日誌,嘗試卸載服務,嘗試使用 sc 命令添加服務。更多 sc 命令內容參看百度百科


插件安裝

啓動服務後,能夠在SonarQube管理頁面的應用市場內添加須要的插件,如漢化包、代碼分析插件:

  • Chinese Pack 漢化包插件
  • Findbugs
  • Checkstyle
  • PMD

服務頁面點擊登錄,輸入用戶名密碼 ,默認爲 admin / admin, 默認密碼能夠在 ..\sonarqube-6.7.5\conf\sonar.properties文件內修改。

首次登錄帳號,會提示配置分析的項目及token,可跳過

SonarQube 首次啓動配置

SonarQube 首次啓動配置2

配置完成後,點擊 Finish..,進入操做頁面

SonarQube 操做頁面

下面安裝 Chinese Pack (漢化包),演示插件安裝。

導航欄選擇 Administration跳轉到Administration頁面,選擇 Marketplace 進入應用市場

SonarQube 安裝漢化包

安裝完成後,出現相似以下提示,點擊 restart 重啓服務便可

SonarQube 安裝完成提示

等待幾秒鐘,服務會自動重啓,從新登陸後,能夠看到漢化結果

SonarQube 漢化結果

其餘插件安裝相似如上操做,根據須要選擇安裝便可。


安裝相關問題記錄及處理

啓動服務時,提示 「Unable to start JVM」

出現相似提示時,能夠嘗試在文件 ..\sonarqube-6.7.5\conf\wrapper.conf 中添加Java JDK的路徑,通常正常配置了Java環境變量,此處不須要配置。

SonarQube Java JDK問題


啓動服務時,提示「另外一個程序正在使用此文件,進程沒法訪問。」

啓動服務時,出現相似提示,是因爲 Java(TM) Platform SE binary此後臺進程沒有關閉,致使jar包被加載佔用,沒法訪問。

SonarQube Java後臺佔用

此時使用任務管理器,關閉對應進程便可。

SonarQube Java後臺佔用問題處理


漢化包插件安裝失敗

安裝漢化包,重啓後,一直重啓狀態,或出現其餘錯誤提示,能夠嘗試在 此處 下載對應SonarQube版本的漢化包,下載完成後,提取jar包,放置到目錄 ..\sonarqube-6.7.5\extensions\plugins 下,重啓服務便可。

相關文章
相關標籤/搜索