Jenkins - 10 - 集成SonarQube

1 - 簡介

可以在一個Jenkins的全局系統配置中設置多個SonarQube服務器。
在每個具體的任務中,可以指定特定的SonarQube服務器來完成代碼掃描。

2 - 配置

默認已安裝並啓動Jenkins與SonarQube。

2.1 安裝SonarQube Scanner插件

2.2 配置 SonarQube Server 信息

Jenkins---》系統管理----》系統設置,配置 SonarQube Server 信息

在SonarQube上生成令牌

將令牌添加到Jenkins

選擇應用令牌

2.3 配置 SonarQube Scanner

Jenkins---》系統管理---》全局工具配置, 配置 SonarQube Scanner

2.4 Jenkins任務配置

設置源碼倉庫

指定構建前的操作

  • Path to project properties:指定sonar-project.properties 文件,默認使用項目根目錄的sonar-project.properties文件
  • Analysis properties:傳遞給 SonarQube的配置參數,優先級高於 sonar-project.properties 文件的參數
  • Additional arguments:附加的參數,例如-X表示啓用Debug 模式輸出更多的日誌信息

指定構建參數

3 - 執行構建

3.1 查看掃描報告

控制檯輸出

在任務界面會出現多個Sonar的鏈接

點擊Sonar鏈接 即可看到掃描報告

3.2 直接在SonarQube Server上查看

4 - 覆蓋率掃描

需要藉助JaCoCo插件,才能獲取到代碼的真實單元測試覆蓋率,否則在有單元測試的情況下也只會顯示爲0%。
單擊“覆蓋率”可看到詳細的代碼統計展示。

安裝JaCoCo插件

通過指定構建的Goals and options參數

注意:添加如下參數-Dmaven.test.failure.ignore=false可以忽略失敗的單元測試,以便完成對覆蓋率的統計。

5 - 多分支掃描

在SonarQube社區版本中,可以通過配置構建的Goals and options參數,來簡單地進行不同分支的掃描。
只需要增加參數-Dsonar.branch=<branch name>
針對同一項目的不同分支進行構建後,在Sonar界面,會看到根據“ ”的掃描任務和狀態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章