一、jenkins-->Manage Plugins:安裝插件 SonarQube Scanner for Jenkins

二、jenkins-->Configure System:配置 SonarQube servers
1)先在 sonarQube 平台創建 token,用來配置 jenkins 登錄 sonarQube

2)然后在 jenkins 的 Configure System 配置 Name、Server URL、Server authentication token

3)添加 token

三、jenkins-->Global Tool Configuration:配置 SonarQube Scanner

四、新建一個 project

五、配置 git

六、注意在如下選項前打鈎

七、以 java 為例,構建添加兩個構建步驟:Invoke top-level Maven targets 和 Execute SonarQube Scanner
若沒有 Invoke top-level Maven targets 的,需要先在 Manage Plugins 中安裝此插件

這段配置很重要
Analysis properties:
sonar.projectKey=hr-server # SonarQube中項目的唯一標識符。只要它是唯一的 sonar.projectName=hr-server # SonarQube中項目顯示的名稱 sonar.version=1.0 # 版本號 sonar.sources=core/src # 源碼目錄 sonar.java.binaries=core/target/classes # 編譯后的文件目錄 # sonar.exclusions=**/*.xml,**/*.html 排除不需要檢測的文件,如:xml、html sonar.language=java # 編程語言 sonar.sourceEncoding=UTF-8 sonar.scm.disabled=true
八、構建完成之后,jenkins頁面可以直接鏈接到 SonarQube


總結
不同語言 Analysis properties 配置略有不同。以 java 和 python 為例,不同點:java 需指定編譯后的文件目錄(安裝maven插件),而 python 只需指定源碼目錄即可。
Java:
Analysis properties:
- sonar.projectKey=hr-server # SonarQube中項目的唯一標識符。只要它是唯一的
- sonar.projectName=hr-server # SonarQube中項目顯示的名稱
- sonar.version=1.0 # 版本號
- sonar.sources=core/src # 源碼目錄
- sonar.java.binaries=core/target/classes # 編譯后的文件目錄
- sonar.exclusions=**/*.xml,html # 排除不需要檢測的文件,如:xml、html
- sonar.language=java # 編程語言
- sonar.sourceEncoding=UTF-8
- sonar.scm.disabled=true
Python:
Analysis properties:
- sonar.projectKey=AutomationApiTest # SonarQube中項目的唯一標識符。只要它是唯一的
- sonar.projectName=AutomationApiTest # SonarQube中項目顯示的名稱
- sonar.projectVersion=1.0 # 版本號
- sonar.sources=. # 源碼目錄
- sonar.language=py # 編程語言
- sonar.sourceEncoding=UTF-8
- sonar.scm.disabled=true
