Jenkins - 集成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任務配置

設置源碼倉庫

指定構建前的操作

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

指定構建參數

clean package sonar:sonar -Dsonar.host.url=http://192.168.16.200:9000

3 - 執行構建

3.1 查看掃描報告

控制台輸出

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

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

3.2 直接在SonarQube Server上查看

4 - 覆蓋率掃描

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

安裝JaCoCo插件

通過指定構建的Goals and options參數
clean package org.jacoco:jacoco-maven-plugin:prepare-agent sonar:sonar -Dsonar.host.url=http://192.168.16.200:9000

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

5 - 多分支掃描

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM