項目分析參數能夠在多個地方設置,繼承關係以下:git
- 全局分析參數,經過Web UI設置,做用於全部項目(配置–>通用–>通用中設置)
- 項目分析參數,經過WebUI設置,覆蓋全局參數(在項目級別的配置–>設置中設置)
- 項目分析參數,定義在項目的分析設置文件(如:sonar-project.properties)和分析器的配置文件(如:sonar-runner.properties),覆蓋WebUI中設置的項目分析參數
- 命令行參數,在開始分析時經過命令指定的參數(如:-d 或 /d:),能夠覆蓋項目分析參數
注:只有WebUI中配置的參數會存儲在數據庫中github
下面的參數列表並不完整,在WebUI中全局或項目級別的設置,均可以做爲分析參數,以下圖中的關鍵字:數據庫
必備參數
執行項目分析必須指定的參數api
關鍵字 | 描述 | 默認值 |
---|---|---|
sonar.host.url | 服務器地址 | http://localhost:9000 |
sonar.projectKey | 項目Key惟一標示,能夠是字母、數字、’-‘、’_‘、’.’和’:’,但至少要包含一個字母 | |
sonar.projectName | 項目名稱 | |
sonar.projectVersion | 項目版本 | |
sonar.sources | 源代碼文件夾,多個用’,’分開 |
可選參數
關鍵字 | 描述 | 默認值 |
---|---|---|
身份驗證 | ||
sonar.login | 用戶名或者是身份認證令牌 | |
sonar.password | 用戶密碼,若使用身份認證令牌則可忽略此屬性 | |
項目配置 | ||
sonar.projectDescription | 項目描述 | |
sonar.tests | 測試文件目錄,多個用’,’分開 | |
sonar.analysis.mode | 分析模式(publish/preview/issues) | publish |
sonar.language | 須要分析源碼的語言,默認執行多語言分析 | |
sonar.sourceEncoding | 源碼編碼格式 | 系統編碼格式 |
sonar.projectBaseDir | 項目主目錄,用於分析開始時的當前目錄不是項目主目錄的狀況,能夠是相對目錄也能夠是絕對目錄 | |
sonar.working.directory | 用於SonarQube Runner執行分析時的工做目錄,能夠是相對目錄,也能夠是絕對目錄 | .sonar |
分析日誌 | ||
sonar.log.level | 設置分析過程當中的日誌級別(INFO/DEBUG/TRACE,其中TRACE級別會輸出SQL語句及其執行的事件) | INFO |
忽略文件
有如下幾種方式來縮小要分析源碼的範圍,以下:服務器
- 源代碼目錄:設置sonar.sources參數指定源代碼目錄的範圍
- 文件後綴:許多語言都提供了限制文件後綴名的的參數,’配置’–>’通用’–>’[語言]’,設置File suffixes屬性
- 選擇指定文件:
- sonar.exclusions/sonar.test.exclusions 設置分析除指定文件之外的全部文件
- sonar.inclusions/sonar.test.inclusions 設置僅僅分析指定的文件
通配符
符號 | 匹配 |
---|---|
* | 匹配一個或多個字符 |
** | 匹配一個或多個目錄 |
? | 匹配一個字符 |
以下:post
# 排除全部Bean結尾的類
# 匹配org/sonar.api/MyBean.java, org/sonar/util/MyOtherBean.java, org/sonar/util/MyDTO.java等
sonar.exclusions=**/*Bean.java,**/*DTO.java
# 排除src/main/java/org/sonar目錄下全部文件
# 但不包括其子目錄下的文件
sonar.exclusions=src/main/java/org/sonar/*
# 排除bank目錄及其子目錄下的全部文件
sonar.exclusions=bank/**/*
# 排除bank目錄及其子目錄下的全部.cs文件
sonar.exclusions=bank/**/*.cs
好比:
CurrentPath=$(pwd) CurrentPath=${CurrentPath#\/} CurrentPath=${CurrentPath//\//_} echo $CurrentPath sonar-scanner \ -X \ -Dsonar.projectKey=cms \ -Dsonar.sources=. \ # -Dsonar.tests=. \ -Dsonar.exclusions=**/_vgo/** \ -Dsonar.exclusions=**/vendor/** \ -Dsonar.host.url=http://{sonar qube server} \ -Dsonar.login=xxxxxx \ -Dsonar.projectName=${CurrentPath}
詳情見官方文檔測試