![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cGcq5SO0cDOzcTNzETM5UGM0QWZyYzX3EDMxADM2AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.jpg)
SonarQube 是一個用于代碼品質管理的開源平台,用于管理源代碼的品質。同時 SonarQube 還對大量的持續內建工具提供了接口支援,可以很友善地在持續內建中使用 SonarQube。此外, SonarQube 的插件還可以對 Java 以外的其他程式設計語言提供支援,對國際化以及報告文檔化也有良好的支援。
官方網址:www.sonarqube.org/
- 下載下傳Sonar Scanner,位址為:docs.sonarqube.org/display/SCA…
- 将下載下傳的 sonar-scanner-cli-3.3.0.1492-windows.zip 包解壓至 Windows 某個路徑,如D:\Tools\sonar(如是其他OS,請選擇對應路徑,如Linux的/usr/local/等)
-
修改環境變量新增變量:
SONAR_SCANNER_HOME = D:\Tools\sonar\sonar-scanner-3.3.0
修改Path變量:增添
%SONAR_SCANNER_HOME%\bin\
-
安裝Sonar ScannerI. 将下載下傳的 sonar-3.7.zip 包解壓至 Windows 某個路徑,如 D:\Tools\sonar(如是其他 OS,請選擇對應路徑,如 Linux的/usr/local/ 等)。
II. 修改 sonnar-scanner.properties
在 /conf/sonar-scanner.properties 檔案中,設定SonarQube伺服器。
III. 到你想檢測的工程根目錄下建立檔案sonar-project.properties,檔案内容如下?,檔案中的參數配置,參考Sonar Analysis Parameters這篇文章。
在指令行模式下,在工程的根目錄下鍵入指令“sonar-scanner”,你會看到以下日志:
運作 sonar-scanner
接着,重新登入 SonarQube 平台,檢測的結果已經在平台上展現出來
從上圖你可以看出來,連單元測試覆寫率的統計也生成出來了,主要原因為在該maven項目之前已經內建了Jacoco插件(具體Maven與Jacoco的內建請參考我的另外一篇文章)。
1.該項目為maven項目,并且Jacoco已經通過POM檔案內建到項目中,具體步驟請參考我的另外一篇文章。
2.該內建方案其實還是首先通過maven package 指令去生成對應的覆寫率報告,然後通過sonar scanner直接使用該覆寫率報告并通過一定算法加工并展示到SonarQube的界面上去。
1.在項目根目錄的 sonar-project.properties 檔案中,增添以下配置内容:
2.在 SoarQube 登入 admin,并通過在【配置-應用市場】下找到Jacoco插件并安裝和重新開機。
- 在項目根目錄下,運作 mvn package,當build成功的時候Jacoco的結果就會産生在target/site/jacoco檔案夾下。maven package
-
接着,在項目根目錄下運作指令 sonar-scanner,如果看到以下結果證明已經覆寫率已經可以在SonarQube上查閱。sonar scanner
以上,後續繼續補充如何通過 SonarLint 整合到 IntelliJ IDEA,并同時如何整合到 Jenkins 實作自動化測試。