zoukankan      html  css  js  c++  java
  • sonarqube代码质量分析神器安装和使用

    sonarqube介绍

    SonarQube®是一种自动代码审查工具,可检测代码中的错误,漏洞和代码味道。它可以与您现有的工作流程集成,以实现跨项目分支和提取请求的连续代码检查。

    特征:

    • 一个开源的代码质量管理系统
    • 支持超过25种编程语言:Java、C/C++、C#、PHP、Flex、Groovy、JavaScript、Python、PL/SQL、COBOL等。(不过有些是商业软件插件)
    • 可以在Android开发中使用
    • 提供重复代码、编码标准、单元测试、代码覆盖率、代码复杂度、潜在Bug、注释和软件设计报告
    • 提供了指标历史记录、计划图(“时间机器”)和微分查看
    • 提供了完全自动化的分析:与Maven、Ant、Gradle和持续集成工具(Atlassian Bamboo、Jenkins、Hudson等)
    • 与Eclipse开发环境集成
    • 与JIRA、Mantis、LDAP、Fortify等外部工具集
    • 支持扩展插件
    • 利用SQALE计算技术债务
    • 支持Tomcat。不过计划从SonarQube 4.1起终止对Tomcat的支持。

    检测标准:

    SonarQube(sonar)是一个开源平台,用于管理源代码的质量。 SonarQube不只是一个质量数据报告工具,更是代码质量管理平台。 支持java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。 SonarQube可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。

    (1) 不遵循代码标准
    SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。
    (2) 潜在的缺陷
    SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。
    (3) 糟糕的复杂度分布
    文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
    (4) 重复
    显然程序中包含大量复制粘贴的代码是质量低下的,SonarQube可以展示 源码中重复严重的地方。
    (5) 注释不足或者过多
    没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。
    (6) 缺乏单元测试
    SonarQube可以很方便地统计并展示单元测试覆盖率。
    (7) 糟糕的设计
    通过SonarQube可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过SonarQube可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测耦合

    原理:

    SonarQube服务器
    1.Web服务器的开发者,管理者,浏览质量快照和配置SonarQube实例
    2.基于Elasticsearch搜索服务器从UI向后搜索
    3.负责处理代码分析报告计算引擎服务器,并将其保存在数据库SonarQube
    4.SonarQube数据库来存储
    5.多个插件
    6.一个或多个SonarQube Scanners:可以与CI服务进行集成

    sonarqube安装

    下载链接:https://www.sonarqube.org/downloads/
    下载完成直接解压即可
    java11下载并配置好环境变量(因为下载的是最新版本8.8,官方说明8.0以后就只支持java11运行环境,如果你安装的不是java11就会出现各种报错)
    下载链接:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html

    sonarqube使用

    打开安装目录下的bin目录,这里有多个系统的执行程序

    进入win下面的目录,启动Starsonar.bat

    启动界面如下则成功(启动时间有点长,请耐心等待):

    启动完成后,进入管理界面
    访问 http://127.0.0.1:9000/

    输入默认的账号admin 密码admin,然后成功进入

    然后可以参考我之前的教程进行汉化,这里就不在介绍

    扫描项目

    1.创建新项目,名称随便填

    2.创建令牌

    选择适合自己的环境配置,然后按照下面的步骤进行操作

    下载地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

    我这里选择windows,然后解压,解压完配置环境变量

    进入需要扫描的项目,然后执行生成的扫描命令,每个人的命令不同,请不要复制我的哦

    cd ***
    sonar-scanner.bat -D"sonar.projectKey=test" -D"sonar.sources=." -D"sonar.host.url=http://127.0.0.1:9000" -D"sonar.login=fa019059d2a973a8da0d3a24d9f1d6c10f843dd0"
    


    执行会自动生成记录到系统中

    进入127.0.0.1:9000

    上面这种扫描方式适合临时使用,推荐使用下面的方法
    首先在需要扫描的目录下创建sonar-project.properties文件,写入如下配置

    # 唯一的键
    sonar.projectKey=my:project
    # 项目名称
    sonar.projectName="My project"
    # 项目版本
    sonar.projectVersion=1.0
    # 项目目录
    sonar.sources=.
    # 项目的语言
    sonar.language=python
    # 项目编码
    sonar.sourceEncoding=UTF-8
    # 项目令牌
    sonar.login=9b2228eff7eb4fd17e1f08d9bd1324caa823c5f5
    

    然后进入刚才的目录执行sonar-scanner,也同样扫描成功

    后面重复执行时,只需要修改版本号即可

  • 相关阅读:
    socket
    IPv4 IPv6
    2变量与基本类型之const限定符
    15面向对象程序设计
    深度探索C++对象模型之第三章:数据语义学
    线段树(成段更新) 之 poj 3468 A Simple Problem with Integers
    USACO 之 Section 1.1 Ad Hoc Problems (已解决)
    构造字符串 之 hdu 4850 Wow! Such String!
    模拟 + 最短路 之 hdu 4849 Wow! Such City!
    简单题(需要注意一个细节) 之 hdu 4847 Wow! Such Doge!
  • 原文地址:https://www.cnblogs.com/huny/p/14724303.html
Copyright © 2011-2022 走看看