美文网首页
Sonar简介

Sonar简介

作者: 上山走18398 | 来源:发表于2019-10-27 23:12 被阅读0次

question

为什么要做静态代码扫描,何时做,怎么做

  1. static code analysis
  2. Dynamic Analysis:
    code coverage
    sufficiency
    quality of unit tests
    memory leaks
  3. sonar插件开发
    ....

简介

Sonar(SonarQube)是一个开源的静态代码扫描(Sonar Scanner)和度量的平台,通过插件形式,可以支持多种语言的质量管理和检测,自定义扫描规则(插件形式)
工作流程: sonarlint(Realtime Analysis) -> =push to= -> scm(版本管理工具) -> jenkins(CI工具) -> Code Analysis sonarQube Scanners -> =push reports to =-> SQ -> SonarQube Database

Sonar 架构
B/S架构,通过插件形式,支持多种语言

  1. 一个SonarQube服务器 启动3个主要进程:
    1. Web服务器,管理员浏览质量快照并配置SonarQube实例
    2. 基于ES的搜索服务器,可以从页面返回搜索结果
    3. 负责处理代码分析报告并将其保存在SQ数据库中的计算机引擎服务器
  2. SonarQube数据库存储:
    1. SonarQube实例配置文件
    2. 项目质量快照,视图等
  3. 多个SonarQube插件安装在服务器上,可能包括语言,SCM,集成,身份验证和治理插件
  4. 一个或多个SQ扫描器在分析项目,运行在构建或持续集成等服务器上

插件

PMD
CheckStyle
Findbugs

工作原理:
Sonanqube-scanner:负责搜集代码相关数据,存入mysql
SonarQube: 负责对搜集的数据进行分析 ELastic Search搜索服务器,通过不同的插件算法来对这些结果再加工,最终以量化的方式来衡量代码质量,最终展示给用户
AST抽象语法树(Abstract Syntax Tree)

Sonar是从七个维度检测代码质量

  1. 不遵循代码标准
    Sonar可以通过PMD、CheckStyle、Findbugs等代码检测工具规范代码编写
  2. 潜在缺陷
  3. 糟糕的复杂度分布:
    对于程序中任何组件的改变都将可能导致需要全面的回归测试
  4. 重复的代码
  5. 注释不足或者过多
  6. 缺乏单元测试
  7. 糟糕的设计
    通过sonar找出循环,展示包与包,类与类之间相互依赖关系,检测耦合。。LCOM4

Sonar-Scanner

sonar自定义规则

自定义rules
sonar提供xpath和java方式扩展
步骤:

  • 创建一个SonarQube插件
  • 增加相关依赖
  • 创建自定义规则
public class Mysonar implements Plugin{
  public void define(Context context){
    //server extensions -> object are instantiated during server startup
    // Server启动实例化
    context.addExtension(MyjavaRulesDefinition.class);
    // bactch extension -> objects are instantiated during code analysis
    //分析代码实例化
    context.addExtension(MyJavaFileCheckRegistrar.class);
}
}
//创建规则
BaseTreeVisitor
public void visitVariable(VariableTree tree){
}
打包

参考链接:https://www.jianshu.com/p/78a28e31ed61
https://www.jianshu.com/p/1a1355ae6894

相关文章

  • Sonar简介

    question 为什么要做静态代码扫描,何时做,怎么做static code analysisDynamic A...

  • 了解sonarqube

    一、sonar简介 sonar是一款静态代码质量分析工具,支持Java、Python、PHP、JavaScript...

  • 代码质量管理与检测——SonarQube的简单搭建与使用

    SonarQube简介 Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar可以支持 Java,...

  • Sonar平台简单调研

    一、 Sonar简介   Sonar是一个用来管理源码质量的开源平台,可以从多维度进行静态代码检测。利用其可扩...

  • SonarQube介绍

    简介 Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成...

  • SonarQube

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

  • sonar

    Sonar简介 Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量 通过...

  • jenkins sonar

    sonar.projectKey=XXX sonar.projectName=XXX sonar.projectV...

  • sonarqube安装

    一 . SonarQube代码质量检查工具简介 Sonar (SonarQube)是一个开源平台,用于管理源代码的...

  • Linux下配置Jenkins+git+sonar+sonar-

    一、sonar和sonar-scanner的安装: 1. 下载sonar,地址https://www.sonarq...

网友评论

      本文标题:Sonar简介

      本文链接:https://www.haomeiwen.com/subject/kmsdectx.html