天天看點

代碼品質管理平台實戰| SonarQube 安裝、配置及 JaCoCo、Maven 內建

代碼品質管理平台實戰| SonarQube 安裝、配置及 JaCoCo、Maven 內建

SonarQube 是一個用于代碼品質管理的開源平台,用于管理源代碼的品質。同時 SonarQube 還對大量的持續內建工具提供了接口支援,可以很友善地在持續內建中使用 SonarQube。此外, SonarQube 的插件還可以對 Java 以外的其他程式設計語言提供支援,對國際化以及報告文檔化也有良好的支援。

官方網址:​​www.sonarqube.org/​​

  1. 下載下傳Sonar Scanner,位址為:​​docs.sonarqube.org/display/SCA…​​
  2. 将下載下傳的 sonar-scanner-cli-3.3.0.1492-windows.zip 包解壓至 Windows 某個路徑,如D:\Tools\sonar(如是其他OS,請選擇對應路徑,如Linux的/usr/local/等)
  3. 修改環境變量新增變量:

    SONAR_SCANNER_HOME = D:\Tools\sonar\sonar-scanner-3.3.0

    修改Path變量:增添

    %SONAR_SCANNER_HOME%\bin\

  4. 安裝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插件并安裝和重新開機。

  5. 在項目根目錄下,運作 mvn package,當build成功的時候Jacoco的結果就會産生在target/site/jacoco檔案夾下。maven package
  6. 接着,在項目根目錄下運作指令 sonar-scanner,如果看到以下結果證明已經覆寫率已經可以在SonarQube上查閱。sonar scanner

    以上,後續繼續補充如何通過 SonarLint 整合到 IntelliJ IDEA,并同時如何整合到 Jenkins 實作自動化測試。