1. 程式人生 > >Sonar 本地開發環境安裝部署及應用

Sonar 本地開發環境安裝部署及應用


一、什麼是 Sonar?
  Sonar是一個用於程式碼質量管理的開源平臺,用於管理Java原始碼的質量。通過外掛機制,Sonar 可以整合不同的測試工具,程式碼分析工具,以及持續整合工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通過不同的外掛對這些結果進行再加工處理,通過量化的方式度量程式碼質量的變化,從而可以方便地對不同規模和種類的工程進行程式碼質量管理。同時 Sonar 還對大量的持續整合工具提供了介面支援,可以很方便地在持續整合中使用 Sonar。 此外,Sonar 的外掛還可以對 Java 以外的其他程式語言提供支援,對國際化以及報告文件化也有良好的支援。

二、安裝
本地開發環境大多是 windows ,所以本介紹只針對 win 端,在安裝 sonarqube 時,必須先安裝 JDK,並配置了環境變數。 
下載地址: https://www.sonarqube.org/downloads/ ,下載後解壓 
下載中文外掛:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/latest ,下載後將 jar 檔案扔到 根目錄/extensions/plugins 資料夾下 
執行根路徑/bin/windows-x86-64/StartSonar.bat 啟動 Sonar,Sonar server 預設使用 9000 埠,如果 9000 埠已經佔用,修改根目錄/conf/sonar.properties 檔案 sonar.web.port=9000 
開啟瀏覽器進入 http://localhost:9000,將會顯示 Sonar 介面,登陸,預設使用者名稱和密碼都是admin

三、應用
1. Sonar 分析後臺程式碼 
Eclipse 中在工程上右鍵 Run As -> Maven build… 執行 maven 命令 : 
jacoco:prepare-agent test jacoco:report sonar:sonar -Dsonar.core.codeCoveragePlugin=jacoco -Dsonar.jacoco.reportPaths=target/jacoco.exec 
然後重新整理 http://localhost:9000 
PS:目前測試環境下 sonar 在每次執行時都會轉你的單體測試程式碼,這是為了計算單體覆蓋率,如果你的單體直接操作 db 可能會產生髒資料,切記

2. Sonar 分析前臺程式碼 
安裝 sonar-scanner , 
下載地址:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner 
解壓後設置環境變數到 bin 路徑,在前臺工程根路徑建立 sonar-project.properties 配置檔案,

#----- Default SonarQube server
#sonar.host.url=http://localhost:9000
#----- Default source code encoding
sonar.sourceEncoding=UTF-8
# must be unique in a given SonarQube instance
sonar.projectKey=jk:paper-store
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=paper-store
sonar.projectVersion=0.0.1-SNAPSHOT
# This property is optional if sonar.modules is set.
sonar.sources=src
sonar.exclusions=src/mock/**,src/assets/**
sonar.scm.forceReloadAll=true
配置項參見 API:https://docs.sonarqube.org/display/SONAR/Analysis+Parameters

在專案根路徑下執行 sonar-scanner 命令,重新整理 http://localhost:9000