一、Sonar是什么?

  • Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测

  • Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题

    1. 不遵循代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写

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

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

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

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

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

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

  • 引用自开源中国社区:代码质量管理平台 Sonar

  • 更多代码分析工具可以查看:常用 Java 静态代码分析工具的分析与比较

二、如何使用Sonar(Eclipse/Myeclipse)

首先需要说明的是

Sonar官网说了从今年2015年10月开始已经停止了Eclipse插件

转而使用SonarLint完成同样的功能。

如果没记错,这个网站是需要FQ的,浪费了我很多时间。。

进入SonarLint官网

点击download,进入如下页面

拖动install图片,可以看到的是eclipse如何安装

在eclipse中,可以点击eclipse marketplace搜索sonarlint,安装显示的点击安装即可

myeclipse可以通过help>install from catalog搜索sonarlint,进行安装,其实是一样的

安装完后重启

可以在这里看SonarLint官网上eclipse是如何使用的视频教程

三、使用示例

右键项目->Configure->enable sonarlint

可以看到项目的右上角有变化

接下来右键项目->SonarLint->Anaylse all files即可

打开相应的视图就可以查看

在文件中可以看到代码相应的不合理的地方被蓝色底线划出来了

如上图,提示我应该直接返回,而不是先赋值给一个临时变量

修改后,如下图

然后又提示我添加override注解

可以看到,加上注解后警告就消失了

这就是sonar的强大之处,可以发现许多潜在的错误。

<转自:http://www.cnblogs.com/lzb1096101803/p/4945844.html>

SonarLint(Sonar) 代码质量管理的更多相关文章

  1. Sonar——代码质量管理平台

    Sonar——代码质量管理平台 一.基本认识 Sonar (SonarQube)是一个开源平台,用于管理源代码的质量. Sonar 不只是一个质量数据报告工具,更是代码质量管理平台.通过插件机制,So ...

  2. Sonar代码质量管理工具

    最近上线了,Sonar代码扫描工具: 与jenkins集成: 实现自动扫描: 下面来简单聊聊Sonar能解决什么问题: ---------------------- Sonar简介 Sonar是一个用 ...

  3. 程序员必备!Sonar代码质量管理工具

    Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具. Sonar 概述 Sonar 是一个用于代码质量管理的开放平台.通过插 ...

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

    安装 下载,直接解压http://www.sonarqube.org/downloads/ 添加mysql驱动至\extensions\jdbc-driver\mysql\ 创建mysql数据库和用户 ...

  5. sonar 代码质量管理平台

    1) 下载    从sonar官网http://www.sonarsource.org/下载 (版本当然是最新的了)   在官网上是不分系统的,一个zip包,下下来之后,包里包含 windows .l ...

  6. 使用 Sonar 进行代码质量管理

    参考资料: 使用 Sonar 进行代码质量管理 SonarQube的安装.配置与使用 SonarLint(Sonar) 代码质量管理

  7. SonarQube代码质量管理工具安装与使用(sonarqube5.1.2 + sonar-runner-dist-2.4 + MySQL5.x)

    1. SonarQube安装(sonarqube5.1.2 + sonar-runner-dist-2.4) 1.1 前提条件 1) 已安装Java环境(version:1.7+) 2) 已安装MyS ...

  8. 代码质量管理工具 sonar 配置

    代码检查工具有很多findBugs等等 sonar配置: 1.下载sonar 5.5, 解压,运行 sonarqube-5.5\bin\windows-x86-64\StartSonar.bat , ...

  9. 搭建sonar,推动代码质量管理

    最近比较关注devops相关的文章,尝试搭建sonarqube服务,进行代码质量的分析和管理,先记录下本地环境的搭建和分析过程. 一.sonarqube服务搭建 官网地址:http://www.son ...

随机推荐

  1. Slides - 在线制作效果精美的幻灯片(PPT)

    Slides 是可以在浏览器中使用的在线幻灯片编辑器.与传统的演示软件,比如 PowerPoint 相比,Slides 不需要下载任何东西.你所有的信息都是安全地存储在我们的服务器上,无论你在哪里.不 ...

  2. 一些XMLHttpRequest的例子代码

    以下例子摘录自:javascript权威指南 //异步请求(事件监听请求是否返回) function getText(url,callback){ var request = new XMLHttpR ...

  3. JavaScript学习笔记-JSON对象

    JSON 是一种用来序列化对象.数组.数值.字符串.布尔值和 null 的语法.它基于 JavaScript 语法,但是又有区别:一些 JavaScript 值不是 JSON,而某些 JSON 不是 ...

  4. 一步一步教你如何解锁被盗的iPhone 6S

    即使你的iPhone6S设置了六位数的密码,甚至还设置了touch ID,但我要告诉你的是:你的手机仍然能被犯罪分子解锁. 事件背景 三天前,一位苹果用户的iPhone6S被偷了.随后,小偷重置了该用 ...

  5. [GitHub] GitHub Repositories

    https://github.com/karqical2016/karqical2016.github.io.git https://github.com/karqical2016/java.git ...

  6. tomcat通过socket连接MySQL,不再占用服务端口【linux】

    MySQL连接方式的说明 http://icbm.iteye.com/blog/1840673 MySQL除了最常见的TCP连接方式外,还提供SOCKET(LINUX默认连接方式).PIPE和SHAR ...

  7. JSOM 对User的操作

    一.操作当前用户 //Load current user info function LoadCurUser() { var curUser; curUser = curWeb.get_current ...

  8. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q13-Q15)

    Question 13 You are designing a SharePoint 2010 site. You need to design the site to meet all the fo ...

  9. 属性观察器willSet与didSet

    willSet与didSet是swift特有的,就是监听属性值的变化,但有一个小注意点. willSet与didSet调用时机:对象创建后的第一次赋值时开始调用.也就是说,初始化时(包含重载的init ...

  10. IOS 四舍五入 进一法 去尾法

    float numberToRound; int result; numberToRound = 4.51; result = (int)roundf(numberToRound); NSLog(@& ...