随着互联网产品迭代越来越快,客户对产品的要求也越来越高,因此如何高质量的交付代码,及时地对代码质量进行分析并给出合理的解决方案就成为了当下必须要解决的一个问题。SonarQube 就是一款初中的代码管理工具,其优势主要体现为:它是一个开源的代码质量管理系统,支持 25+ 种语言,可以通过使用插件机制与 Jenkins 和 JIRA 等其他外部工具集成,从而实现了对代码的质量的全面自动化分析和管理。
onar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。 此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。
简单来说:Sonar主要的功能是分析源代码的编写质量。在项目开发阶段,如何保证开发人员在规定时间内既能完成开发功能,又能尽量避免编写过程中的出现的低级失误。使用Sonar可以很好的检查出来。Sonar不仅仅常用于Java源代码质量的检查,由于它已经提供了很多语言的支持,对web开发中常用的css,javascrip,html,php等都有更好的支持。
截至江边望海撰写这篇博客时它的最新版本是5.1.1
远程客户机可以通过各种不同的分析机制,从而将被分析的项目代码上传到 SonarQube server 并进行代码质量的管理和分析,SonarQube 还会通过 Web API 将分析的结果以可视化、可度量的方式展示给用户。
SonarQube 并不是简单地将各种质量检测工具的结果(例如 FindBugs,PMD 等)直接展现给客户,而是通过不同的插件算法来对这些结果进行再加工,最终以量化的方式来衡量代码质量,从而方便地对不同规模和种类的工程进行相应的代码质量管理。
SonarQube 在进行代码质量管理时,会从图 1 所示的七个纬度来分析项目的质量。
[attach]123035[/attach]
SonarQube 可以支持 25+ 种编程语言,针对不同的编程语言其所提供的分析方式也有所不同:
对于所有支持的编程语言,SonarQube 都提供源了代码的静态分析功能;
对于某些特定的编程语言,SonarQube 提供了对编译后代码的静态分析功能,比如 java 中的 class file 和 jar 和 C# 中的 dll file 等;
对于某些特定的编程语言,SonarQube 还可以提供对于代码的动态分析功能,比如 java 和 C# 中的单元测试的执行等。
通常可以采用三种不同的方法来发起代码分析,分别为 Analyzing with SonarQube Runner、,Analyzing with SonarQube Ant Task 和 Analyzing with Maven 方法。这三种方法的主要区别是 , 它们分别适用于不同架构和组织形式的项目,并且其相应的配置文件的写法也不尽相同。
如果想在命令行使用Sonar分析源代码,需要下载Sonar-runner
sonar-runner是一个命令行下分析源代码的工具,需要结合着Sonarqube一同使用。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |