SonarQube代碼質量分析平臺介紹

1.使用需求

隨着互聯網產品迭代愈來愈快,客戶對產品的要求也愈來愈高,所以如何高質量的交付代碼,及時地對代碼質量進行分析並給出合理的解決方案就成爲了當下必需要解決的一個問題。SonarQube 就是一款初中的代碼管理工具,其優點主要體現爲:它是一個開源的代碼質量管理系統,支持 25+ 種語言,能夠經過使用插件機制與 Jenkins 和 JIRA 等其餘外部工具集成,從而實現了對代碼的質量的全面自動化分析和管理。 php

2.SonarQube能幹什麼?

網址:http://www.sonarqube.org/ css

Sonar是一個用於代碼質量管理的開源平臺,用於管理Java源代碼的質量。經過插件機制,Sonar 能夠集成不一樣的測試工具,代碼分析工具,以及持續集成工具,好比pmd-cpd、checkstyle、findbugs、Jenkins。經過不一樣的插件對這些結果進行再加工處理,經過量化的方式度量代碼質量的變化,從而能夠方便地對不一樣規模和種類的工程進行代碼質量管理。同時 Sonar 還對大量的持續集成工具提供了接口支持,能夠很方便地在持續集成中使用 Sonar。 此外,Sonar 的插件還能夠對 Java 之外的其餘編程語言提供支持,對國際化以及報告文檔化也有良好的支持。

簡單來講:Sonar主要的功能是分析源代碼的編寫質量。在項目開發階段,如何保證開發人員在規定時間內既能完成開發功能,又能儘可能避免編寫過程當中的出現的低級失誤。使用Sonar能夠很好的檢查出來。Sonar不單單經常使用於Java源代碼質量的檢查,因爲它已經提供了不少語言的支持,對web開發中經常使用的css,javascrip,html,php等都有更好的支持。 html

截至江邊望海撰寫這篇博客時它的最新版本是5.1.1 java

3.工做原理介紹

遠程客戶機能夠經過各類不一樣的分析機制,從而將被分析的項目代碼上傳到 SonarQube server 並進行代碼質量的管理和分析,SonarQube 還會經過 Web API 將分析的結果以可視化、可度量的方式展現給用戶。 web

SonarQube 並非簡單地將各類質量檢測工具的結果(例如 FindBugs,PMD 等)直接展示給客戶,而是經過不一樣的插件算法來對這些結果進行再加工,最終以量化的方式來衡量代碼質量,從而方便地對不一樣規模和種類的工程進行相應的代碼質量管理。
SonarQube 在進行代碼質量管理時,會從圖 1 所示的七個緯度來分析項目的質量。 算法

SonarQube 能夠支持 25+ 種編程語言,針對不一樣的編程語言其所提供的分析方式也有所不一樣:
對於全部支持的編程語言,SonarQube 都提供源了代碼的靜態分析功能;
對於某些特定的編程語言,SonarQube 提供了對編譯後代碼的靜態分析功能,好比 java 中的 class file 和 jar 和 C# 中的 dll file 等;
對於某些特定的編程語言,SonarQube 還能夠提供對於代碼的動態分析功能,好比 java 和 C# 中的單元測試的執行等。 編程

4.如何使用

一般能夠採用三種不一樣的方法來發起代碼分析,分別爲 Analyzing with SonarQube Runner、,Analyzing with SonarQube Ant Task 和 Analyzing with Maven 方法。這三種方法的主要區別是 , 它們分別適用於不一樣架構和組織形式的項目,而且其相應的配置文件的寫法也不盡相同。 架構

若是想在命令行使用Sonar分析源代碼,須要下載Sonar-runner 編程語言

sonar-runner是一個命令行下分析源代碼的工具,須要結合着Sonarqube一同使用。 工具

5.參考連接

http://www.ibm.com/developerworks/cn/opensource/os-sonarqube/

相關文章
相關標籤/搜索