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界面,會看到根據“