1. 程式人生 > 其它 >企業DevOps之路:Jenkins 整合 SonarQube程式碼質量自動掃描

企業DevOps之路:Jenkins 整合 SonarQube程式碼質量自動掃描

1. 概述

如果每次都需要手動執行 SonarScanner ,肯定不是 DevOps 思想所不予許的。所以需要進一步完善 SonarQube 進行自動化程式碼分析。從官方文件的

https://docs.sonarqube.org/latest/

 

 

SonarScanner 支援 MSBuild、Maven、Gradle、Ant、Jenkins 等。SonarScanner 整合 Jenkins 進行自動化程式碼分析, 正是 DevOps 不可或缺的一部分。

2. Jenkins 安裝 SonarQube Scanner 外掛

Manage Jenkins -> Manage Plugins

 

 

安裝完後,需要重啟一下 Tomcat 服務

3. 配置 SonarQube Scanner

Manage Jenkins -> Global Tool Configuration

 

 

填入 SonarScanner 的安裝目錄

4. 生成 SonarQube 的 Server authentication token

登入 SonarQube 後,在 My Account ->Securiy 中生成 toekn

 

 

填一個有意義的令牌名稱,然後點選生成。重新進入這個頁面之前生成的 token 就看不到的,只能看到一次。

5. 增加 SonarQube 服務的憑證

Manage Jenkins -> Manage Credentials

 

 

把第四步生成的 token 填入 Secret

6. 配置 SonarQube 服務

Manage Jenkins -> Configure System

 

 

  • Name:SonarQube 的名字

  • Server URL:SonarQube 服務訪問地址

http://127.0.0.1:9000/
  • Server authentication token:憑證

7. Maven 專案程式碼掃描

新建Item -> Freestyle project

這裡選擇 Freestyle project

,當然如果是Maven專案,也可以安裝支援Maven專案的外掛,直接建立Maven專案。

 

 

首先配置 原始碼管理,這個就不多說了。如果不會參考之前的文章。

增加構建步驟

 

 

  • Task to run:任務名稱,SonarQube 7.6 以上版本不需要再填這個域,否則會儲存

  • Path to project properties:sonar-project.properties 配置檔案的目錄

  • Analysis properties :這個域就是不採用 sonar-project.properties 方式時,可以直接把 sonar-project.properties 檔案的配置項填到這裡。

這裡採用 Analysis properties 方式,直接在 Analysis properties 填入如下內容

sonar.projectKey=ruoyi
sonar.projectName=ruoyi
sonar.projectVersion=1.0
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.sources=.
sonar.java.binaries=.

至此配置完畢,然後進行構建;構建結果如下

 

 

點選上圖兩個紅框可以直接跳轉 SonarQube 服務