Sonar——代码质量管理平台

Sonar——代码质量管理平台

一、基本认识

Sonar (SonarQube)是一个开源平台,用于管理源代码的质量。

Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。通过插件机制,Sonar可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

此外,Sonar 的插件还可以对 Java 以外的其他编程语言(支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex等)提供支持,对国际化以及报告文档化也有良好的支持。

二、主要检测的内容

通过sonar可以有效检测在程序开发过程中的七大问题。

1.糟糕的复杂度分布

文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试

2.重复

显然程序中包含大量复制粘贴的代码是质量低下的。sonar可以展示源码中重复严重的地方:

3.缺乏单元测试

sonar可以很方便地统计并展示单元测试覆盖率

4.没有代码标准

sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写

5.没有足够的或者过多的注释

没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷

6.潜在的bug

sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug

7.糟糕的设计(原文Spaghetti Design,意大利面式设计)

通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系可以检测自定义的架构规则;通过sonar可以管理第三方的jar包可以利用LCOM4检测单个任务规则的应用情况;检测耦合。

关于SpaghettiDesign:http://docs.codehaus.org/display/SONAR/Spaghetti+Design

三、插件介绍

sonar支持多种插件,插件的下载地址为:http://docs.codehaus.org/display/SONAR/Plugin+Library。

将下载后的插件上传到${SONAR_HOME}extensions\plugins目录下,重新启动sonar。

1.sonar默认插件集合

sonar默认集成了Java Ecosystem插件,该插件是一组插件的合集:

1)Java [sonar-java-plugin]:java源代码解析,计算指标等

2)Squid [sonar-squid-java-plugin]:检查违反Sonar定义规则的代码

3)Checkstyle [sonar-checkstyle-plugin]:使用CheckStyle检查违反统一代码编写风格的代码

4)FindBugs [sonar-findbugs-plugin]:使用FindBugs检查违反规则的缺陷代码

5)PMD [sonar-pmd-plugin]:使用pmd检查违反规则的代码

6)Surefire [sonar-surefire-plugin]:使用Surefire执行单元测试

7)Cobertura [sonar-cobertura-plugin]:使用Cobertura获取代码覆盖率

8)JaCoCo [sonar-jacoco-plugin]:使用JaCOCO获取代码覆盖率

2.下面列出了一些常用的插件:

1)JavaScript代码检查:http://docs.codehaus.org/display/SONAR/JavaScript+Plugin

2)python代码检查:http://docs.codehaus.org/display/SONAR/Python+Plugin

3)Web页面检查(HTML、JSP、JSF、Ruby、PHP等):http://docs.codehaus.org/display/SONAR/Web+Plugin

4)xml文件检查:http://docs.codehaus.org/display/SONAR/XML+Plugin

5)scm源码库统计分析:http://docs.codehaus.org/display/SONAR/SCM+Stats+Plugin

6)文件度量:http://docs.codehaus.org/display/SONAR/Tab+Metrics+Plugin

7)中文语言包:http://docs.codehaus.org/display/SONAR/Chinese+Pack

8)时间表显示度量结果:http://docs.codehaus.org/display/SONAR/Timeline+Plugin

9)度量结果演进图:http://docs.codehaus.org/display/SONAR/Motion+Chart+Plugin

3.插件配置示例

具体详见《使用Sonar 进行代码质量管理》。

四、结束语

Sonar 的主要特色是对不同工具产生的检查结果进行再加工处理,Sonar 还向用户提供了对数据进行个性化处理的方法。可以说,Sonar是目前最强大的代码质量管理工具之一。

时间: 2025-01-12 02:36:58

Sonar——代码质量管理平台的相关文章

持续集成与自动化部署 - jenkins & sonar代码质量管理平台 部署和基础使用(五)

1 jenkins 安装参考链接 1.1 安装jenkins [[email protected] ~]# yum install -y java-1.8.0 [[email protected] ~]# cd /etc/yum.repos.d/ [[email protected] yum.repos.d]# wget http://pkg.jenkins.io/redhat/jenkins.repo [[email protected] yum.repos.d]# rpm --import

快速搭建sonar代码质量管理平台

安装 下载,直接解压http://www.sonarqube.org/downloads/ 添加mysql驱动至\extensions\jdbc-driver\mysql\ 创建mysql数据库和用户:10.22.10.139 db:sonar 用户名/密码:sonar/sonar 修改sonar.properties,注释掉默认的数据库配置,添加以下配置: [plain] view plain copy #----- MySQL 5.x # Comment the embedded datab

开发人员学Linux(10):CentOS7安装配置代码质量管理平台SonarQube6.4

1.前言上一章讲述了如何配置使用源代码管理工具SVN并使之与Apache集成,从而实现代码的变更可追溯,虽然在大多数团队里强调代码提交之前必须找团队中经验丰富的人来审核通过后方可提交,但这一条有时候不是所有时候都能得到满足,有没有依赖于机制而不是人来保证代码质量呢,我们知道计算机的缺点也是优点之一就是可以忠实执行指令.答案是有的,那就是SonarQube,其官方网址为:https://www.sonarqube.org/,目前最新版本为6.4.SonarQube是一个开源平台,用于管理源代码的质

SonarQube代码质量管理平台比较好的搭建和使用资料

http://www.voidcn.com/blog/lidujun1028/article/p-3831235.html Sonar (SonarQube)是一个开源平台,用于管理源代码的质量.Sonar 不只是一个质量数据报告工具,更是代码质量管理平台.支持的语言包括:Java.PHP.C#.C.Cobol.PL/SQL.Flex 等. 主要特点: 代码覆盖:通过单元测试,将会显示哪行代码被选中 改善编码规则 搜寻编码规则:按照名字,插件,激活级别和类别进行查询 项目搜寻:按照项目的名字进行

SonarQube代码质量管理平台的安装与配置

一.SonarQube的介绍 SonarQube是一个管理代码质量的开放平台. 可以从七个维度检测代码质量(为什么要用SonarQube): (1)  复杂度分布(complexity): :代码复杂度过高将难以理解.难以维护 (2)  重复代码(duplications): :程序中包含大量复制粘贴的代码是质量低下的表现 (3)  单元测试(unit tests): :统计并展示单元测试覆盖率 (4)  编码规范(coding rules) :通过Findbugs,PMD,CheckStyle

SonarQube代码质量管理平台安装与使用--转载

原文:http://blog.csdn.net/hunterno4/article/details/11687269 Sonar简介 Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测 sonarQube能带来什么? Developers' Seven Deadly Sins1.糟糕的复杂度分布  文件

持续集成篇SonarQube 代码质量管理平台的安装

持续集成篇 SonarQube 代码质量管理平台的安装 -------------------------------- 1.SonarQube的介绍 SonarQube是一个管理代码质量的开放平台. 可以从七个维度检测代码质量(为什么要用SonarQube): (1) 复杂度分布(complexity):代码复杂度过高将难以理解.难以维护 (2) 重复代码(duplications):程序中包含大量复制粘贴的代码是质量低下的表现 (3) 单元测试(unit tests):统计并展示单元测试覆盖

钉钉(dingding)的sonar(代码质量管理工具的)集成通知

代码地址: https://gitee.com/chejiangyi/dingding-sonar 钉钉(dingding)的sonar(代码质量管理工具的)集成通知,非常简单的一个小工具. 钉钉的sonar集成通知 项目部署 #下载release包 /releases/dingding-sonar-1.0-SNAPSHOT.jar wget https://gitee.com/chejiangyi/dingding-sonar/repository/archive/master.zip unz

持续集成之②:整合jenkins与代码质量管理平台Sonar并实现构建失败邮件通知

一:Sonar是什么?Sonar 是一个用于代码质量管理的开放平台,通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如FindBugs,PMD等)直接显示在Web页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理.在对其他工具的支持方面,Sonar 不仅提供了对