/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
sonarqube提供代碼分析功能,可以幫助用戶分析多種語言的代碼,您可以將項目添加到軟件分析,也可以在web連接到遠程的項目分析,在分析期間可以從服務器請求數據,隨後將數據提供給分析的文件,並以報告的形式將結果數據發送回服務器,然後在服務器端異步分析,分析報告排隊並按順序處理,因此很可能在分析日誌顯示完成後的短暫時間內,更新的值在SonarQube項目中不可見,但是您將能夠分辨出正在發生的事情,因為項目名稱右側的項目主頁上將添加一個圖標,將鼠標懸停在它上麵就可以顯示項目信息,sonarqube分析過程還是比較複雜的,建議用戶到官方網站查看教程!
SonarQube可以對20多種不同的語言進行分析。該分析的結果將是質量測量和問題(編碼規則被打破的情況)。但是,分析的內容會因語言而異:
在所有語言中,“blame”數據將自動從支持的SCM提供程序導入。自動支持Git和SVN。其他提供商需要額外的插件。
在所有語言中,執行源代碼的靜態分析(Java文件,COBOL程序等)
可以對某些語言(Java中的.class文件,C#中的.dll文件等)執行編譯代碼的靜態分析。
默認情況下,在分析期間,隻有語言分析器可識別的文件才會加載到項目中。例如,如果您的SonarQube實例僅包含SonarJava SonarJS,則將加載所有.java和.js文件,但會忽略.xml文件。
(1)分別下載sonarqube和sonar-scanner安裝包到本地之後進行解壓
(2)啟動MySQL數據庫,創建sonar數據庫即可。
(3)進入sonarqube解壓縮之後的文件目錄中,進入conf文件下,找到
sonar.properties文件,並向其中添加MySQL數據庫的連接配置信息如下:
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUn icode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
(4)進入sonar-scanner解壓縮之後的文件目錄中,進入conf文件下,找到sonar-scanner.properties文件,並向其中添加MySQL數據庫的連接配置信息如下:
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUn icode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
(5)至此,Sonar的基本配置就已經完成了,啟動它
進入sonarqube解壓縮之後的文件目錄中,進入bin目錄下,找到相對應操作係統的啟動環境(StartSonar.bat)進行啟動服務。
我的windows64位係統,具體是:C:\soft\SonarQube\sonarqube-7.6\bin\windows-x86-64\StartSonar.bat,點擊執行StartSonar.bat文件啟動服務
(7)進入數據庫中,你會看到生成了大量的數據表,如下:
(8)在瀏覽器上訪問:http://localhost:9000,出現如下頁麵信息,表示sonar安裝成功,
點擊登錄進行登錄,賬戶:admin,密碼:admin,即可進入
(9)安裝中文語言包,搜索chinese Pack,進行安裝即可
安裝成功,需要重啟StartSonar.bat服務,即可看到如下效果。
到這裏已經完成了安裝。
(1)分別下載sonarqube和sonar-scanner安裝包到本地之後進行解壓
(2)啟動MySQL數據庫,創建sonar數據庫即可。
(3)進入sonarqube解壓縮之後的文件目錄中,進入conf文件下,找到
sonar.properties文件,並向其中添加MySQL數據庫的連接配置信息如下:
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUn icode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
(4)進入sonar-scanner解壓縮之後的文件目錄中,進入conf文件下,找到sonar-scanner.properties文件,並向其中添加MySQL數據庫的連接配置信息如下:
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUn icode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
(5)至此,Sonar的基本配置就已經完成了,啟動它
進入sonarqube解壓縮之後的文件目錄中,進入bin目錄下,找到相對應操作係統的啟動環境(StartSonar.bat)進行啟動服務。
我的windows64位係統,具體是:C:\soft\SonarQube\sonarqube-7.6\bin\windows-x86-64\StartSonar.bat,點擊執行StartSonar.bat文件啟動服務
(7)進入數據庫中,你會看到生成了大量的數據表,如下:
(8)在瀏覽器上訪問:http://localhost:9000,出現如下頁麵信息,表示sonar安裝成功
點擊登錄進行登錄,賬戶:admin,密碼:admin,即可進入
(9)安裝中文語言包,搜索chinese Pack,進行安裝即可
安裝成功,需要重啟StartSonar.bat服務,即可看到如下效果。
到這裏已經完成了安裝。
分支類型
短支
這對應於Pull / Merge Requests或Feature Branches。這種分支:
會很快消失
將迅速合並以防止集成問題
是針對給定版本開發的,因此版本不會更改,並且無法設置新代碼期間; 分支中已更改的所有內容都是新代碼
跟蹤與其上更改的代碼相關的所有新問題。
長支
這對應於將包含多個發行版本的“維護”分支。這種分支將:
持續很長時間
不可避免地與其他分支機構分歧越來越大
房子有幾個發布版本,每個版本都必須通過質量門才能進入生產,預計不會被合並到另一個分支
如果SonarQube的結果不相關,那麼沒有人會想要使用它。這就是為什麼精確配置每個項目要分析的內容是非常重要的一步。這樣做可以消除噪音,例如生成的代碼上標記的問題和重複,或者與某些類型的對象無關的規則中的問題。
SonarQube為您提供了幾種選項,可以準確配置要分析的內容。您可以
完全忽略一些文件或目錄
從問題檢測(特定規則或所有這些)中排除文件/目錄,但分析所有其他方麵
從重複檢測中排除文件/目錄,但分析所有其他方麵
從Coverage計算中排除文件/目錄,但分析所有其他方麵
您可以在全局或項目級別進行這些更改。在兩個級別,導航路徑都相同:管理>常規設置>分析範圍。
忽略文件
我們建議您從庫中排除生成的代碼,源代碼等。有四種不同的方法可以將分析範圍縮小到與開發團隊相關的源代碼。您可以將它們組合在一起以調整分析範圍。此外,我們會自動從分析中排除項目文件中描述的.gitignore文件。可以禁用此行為。請參見sonar.scm.exclusions.disabled在分析參數的詳細信息頁麵。
來源目錄
設置sonar.sources屬性以將分析範圍限製為某些目錄。
文件後綴
大多數語言插件提供了一種將分析範圍限製為與一組擴展匹配的文件的方法。轉至管理>常規設置> [語言]以設置文件後綴屬性。
選擇文件
您的第一道防線在您的分析中具有明確定義的文件集是您的sonar.sources價值。對於使用Maven,Gradle或MSBuild構建和分析的項目,此值將自動定義為具有通常徹底且理智的值。對於其他項目,您希望確保sonar.sources設置為實際包含源文件的項目子目錄。將它設置為.比大多數人想要的更廣泛的網絡。
一旦你得到了所有的文件在你的分析,你想,它的時間來看看你是否有你寧願留下任何文件了您的分析,比如JavaScript庫,以及生成的文件。這些可以通過排除進行處理。指定排除意味著您的sonar.sources目錄下的所有內容都將包含在分析中,但具有與您的排除正則表達式匹配的路徑的文件除外。
要使用排除項來分析除指定文件之外的所有內容,請轉至管理>常規設置>分析範圍>文件。
源文件排除(sonar.exclusions) - 排除源代碼文件
測試文件排除(sonar.test.exclusions) - 排除測試文件
隻需sonar.sources仔細設置即可滿足絕大多數需求。通過添加一些簡單的排除,可以滿足大多數其他需求。在一些極端情況下,有必要明確說明分析中包含的內容並忽略其他所有內容,但這不是正常情況,設置內容不應該是您在配置新項目時首先嚐試的內容。
要使用排除項僅分析文件的指定子集sonar.sources,請轉至管理>常規設置>分析範圍>文件。
源文件包含(sonar.inclusions)
測試文件包含(sonar.test.inclusions)
您可以在項目級別和全局級別設置這些屬性。
竊聽器
代表代碼中出錯的問題。如果這還沒有破裂,它將會,也許是在最糟糕的時刻。這需要修複。昨天。
代碼嗅覺
代碼中與可維護性相關的問題。保持原樣意味著最好的維護者將比他們應該更改代碼更難。在最壞的情況下,他們會對代碼狀態感到困惑,因為他們會在進行更改時引入其他錯誤。
問題
當一段代碼不符合規則時,快照上會記錄一個問題。可以在源文件或單元測試文件上記錄問題。有三種類型的問題:錯誤,代碼嗅覺和漏洞
測量
給定時間內給定文件或項目的度量值。例如,MyProlass類上的125行代碼或項目myProject上30.5%的重複行密度
新代碼期
您需要密切關注代碼中引入新問題的時間段。理想情況下,這是因為previous_version,但如果您不使用類似Maven的版本控製方案,則可能需要設置相對任意的時間段,例如21天或特定日期。
質量概況
一套規則。每個快照都基於單個質量配置文件。
規則
應遵循的編碼標準或慣例。不遵守編碼規則會導致錯誤,漏洞,安全熱點和代碼嗅覺。規則可以檢查代碼文件或單元測試的質量。