系列目錄html
Sonarqube下載地址是:https://www.sonarqube.org/downloads/
下載版本有兩個,一個是長期支持版,另外一個是最新版,此處安裝的是最新版,目前版本是7.3,下載的時候點擊醒目的藍色按鈕便可(此時下載的是社區版),下面有三個無底色按鈕下載連接,分別對應的是開發者版,企業版和數據中心版,這些版本都不是免費版,須要獲取Licence key方可以使用.目前起步階段,使用社區版就Ok了.java
注意 Sonarqube是基於java語言開發的,所以運行以前必須先安裝Jremysql
Sonarqube支持Windows,mac和linux,可是安裝包並不區分平臺,也就是這三個平臺下載包是同樣的,只是啓動方式不一樣.linux
下載完成全將下載的壓縮包解壓,進入bin目錄,能夠看到這個目錄下有數個文件夾,從文件夾的名稱很容易看出它們對應的是windows,mac,linux平臺下的啓動目錄,因爲咱們是在windows平臺下運行的,所以進入windows-x86-64目錄(固然,若是你的電腦是32位系統,則進入windows-x86-32目錄)此目錄下面有不少腳本文件,咱們雙擊StartSonar.bat
這個批處理文件來運行windows下的sonarqube,啓動須要數十秒時間,請耐心等等.當看到控制檯最後一句是SonarQube is up
說明sonarqube已經成功啓動.此時在瀏覽器地址欄輸入localhost:9000
就能夠進入Sonarqube web管理頁面.web
這個頁面是一個關於Sonarqube的介紹頁面,從這裏能夠很清析地看到Sonarqube支持的語言,點擊Read Documentation
按鈕能夠進入Sonarqube的幫助文檔頁面.sql
上一節咱們已經成功啓動Sonarqube,然而僅僅把Sonarqube啓動起來並無什麼做用,咱們還須要進行數據庫配置和掃描器(Sonarqube對特定語言的掃描工具稱爲掃描器)配置才能把數據接入Sonarqube管理平臺.數據庫
數據庫配置
Sonarqube支持內嵌數據庫,mysql,oracle 11g/12c,sql server 2014/2016,postgresql 9.3+,因爲oracle須要提供單獨的驅動比較麻煩,這裏就以mysql爲例講解.c#
咱們進入Sonarqube目錄下的conf目錄,下面有一個sonar.properties
文件,咱們用記錄本打開它,咱們進入mysql欄把sonar.jdbc.url
註釋取消掉,並加上如下代碼windows
sonar.jdbc.username=root sonar.jdbc.password= sonar.sorceEncoding=UTF-8 sonar.login=root sonar.password=
Sonarqube默認的數據庫名爲sonar,須要咱們手動建立
,咱們在本身經常使用的mysql管理工具裏新建便可.api
以上是關於sonarqube mysql鏈接字符串的配置.用戶名和密碼讀者根據實際狀況填寫
以上筆者使用的是Xampp帶的mysql的默認配置,用戶名爲root,密碼爲空,注意這裏的password不能寫爲"",而是什麼都不寫留空,固然若是有密碼就填寫實際密碼.
Sonarqube 7.3僅支持mysql 5.6及以上8.0如下版本,也就是說不支持8.0版本,須要特別注意.
Sonarqube也支持內嵌數據庫,然而內嵌數據庫不便於管理和遷移,強烈不建議在生產環境使用內嵌數據庫.
咱們從新啓動Sonarqube,而後進入web管理界面,此時咱們打開mysql管理工具,能夠看到sonarqube在sonarqube庫下建立了不少表.
安裝配置Msbuild Scanner
上一節咱們說過,Sonarqube須要使用Scanner來掃描代碼數據以供Sonarqube管理平臺使用,這裏咱們下載 msbuild scanner掃描工具對c#代碼進行掃描.
咱們把Sonarqube web管理界面往下拉到最底,會看到一拍圖標
咱們點擊第一個圖標,也就是Visual Studio圖標,會進入一個頁面
圖示部分爲下載連接,咱們選擇.net framework 4.6+
注意,這裏下載連接的名稱雖然是for .net framework 4.6+,實際上仍然支持.net 4.0及以上版本,並非只支持.net 4.6以上版本.
下載完成後,咱們把壓縮包解壓到一個目錄,並把目錄地址添加到系統環境變量裏
.
一樣,爲了方便使用,咱們也須要把msbuild.exe添加到環境變量中,若是你的系統中安裝的visual Studio開發工具,則Visual studio中會自動包含一個msbuild.exe咱們找到它的路徑添加到系統環境變量path中.
配置SonarQube.Analysis.xml文件
因爲Scanner要經過rest api方式向服務器提交數據,這裏須要對Sonarqube web服務器地址和用戶名進行配置才能正常提交數據,咱們打開剛解壓的目錄,找到SonarQube.Analysis.xml
文件,添加如下三行配置便可
<Property Name="sonar.host.url">http://localhost:9000</Property> <Property Name="sonar.login">admin</Property> <Property Name="sonar.password">admin</Property>
以上配置很容易理解,url爲Sonarqube服務器地址,下面爲登錄名和密碼(Sonarqube默認帶一個管理員帳號,用戶名爲admin密碼也是admin,後面咱們會講在生產環境中如何更改admin密碼)
再次回到剛纔的下載頁面,定位到usage欄,能夠看到有一個簡短的示例代碼以下
SonarScanner.MSBuild.exe begin /k:"project-key" MSBuild.exe /t:Rebuild SonarScanner.MSBuild.exe end
咱們依照這段代碼的結構,對本地的一個項目進行編譯(能夠是任意c#項目),進入項目sln或者csproj所在的文件夾下依次
執行如下代碼
SonarScanner.MSBuild.exe begin /k:"mygetdata" /v:"1.0" MSBuild.exe /t:Rebuild SonarScanner.MSBuild.exe end
第二段是執行msbuild,第三段是一個結束標誌,沒有什麼須要詳細說明的,關於msbuild構建的詳細信息能夠查看微軟官網,也能夠參照本教程其它章節.這裏簡要介紹下第一段的/k和/v參數,/k爲key的縮寫,Sonarqube每個項目都要有一個唯一key,key的規則能夠本身定,可是須要方便管理,/v爲version,若是兩個構建的key相同,verison不一樣,Sonarqube會生成一個對比以便直觀看到兩次構建的差別,這樣方便管理員查看問題的解決狀況.
執行完以上命令後,咱們再進入Sonarqube首頁,這時候咱們點擊Login按鈕登錄,只有登錄之後才能夠看到與項目相關的內容
,點擊例如後用戶名爲admin,密碼也是admin(前面說過Sonarqube默認會帶一個用戶名和密碼都是admin的帳戶,後面咱們會講如何更改密碼以及如何爲不一樣的開發者分配帳戶)
登錄之後,就會看到一個以下圖所示的界面
從圖中咱們能夠看到咱們剛纔建立的key 爲mygetdata
的構建了,從圖中能夠簡要的看到此項目的嚴重bug,通常bug,代碼不規範,代碼單元測試覆蓋率,代碼重複度,代碼最後一次分析時間等.
咱們點擊mygetdata
這個標題,便會進去關於這個構建任務的更爲詳細信息
能夠看到信息更爲詳細,切換上面的導航欄能夠看到關於某一個維度的更爲詳細的信息.
圖標中的數字大都是能夠點擊的連接,好比頁面中顯示bugs爲10咱們點擊
10
這個數字能夠進入這10個bug的代碼詳情