zoukankan      html  css  js  c++  java
  • 代码质量检测-Sonar

    一。 Sonar简介

     sonarqube系统是一个代码质量检测工具 由以下四个组件组成(https://docs.sonarqube.org/display/SONAR/Architecture+and+Integration)

       1》一个sonarqube服务器 包含三个子进程(web服务(界面管理),搜索服务 计算引擎服务(写入数据库))

       2》一个sonarqube数据库 配置sonarqube服务

       3》多个sonarqube插件 位于解压目录 extensionsplugins目录

       4》一个或者多个sonarqube scanners 用于分析特定的项目

    使用SonarQube(简称SQ)工作流程

     开发者使用开发工具(eclipse,ide)上传代码到SCM(源代码管理器)    系统自动同步代码到某个位置 sonarqube scanners 扫描该代码检查质量 将分析结果 将分析结果推送到SQServer 存储在SQ数据库 用户可以使用eclipse插件sonarlint来同步sonarqube服务器配置(java和js版本等)可以实时在线分析

     

    二。SonarQube安装

      sonarqube官方文档(文档https://docs.sonarqube.org) 

    安装过程参考(https://docs.sonarqube.org/display/SONAR/Setup+and+Upgrade)

    1》下载并且解压

    下载 sonarqube-5.4  点击文档 https://docs.sonarqube.org/display/SONAR/Get+Started+in+Two+Minutes 的download page 进入下载  
    这里使用window解压后进入 sonarqube-5.4inwindows-x86-64目录
    点击 StartSonar.bat运行 
    浏览器输入地址 http://localhost:9000/ 输入账号密码 admin/admin 进入 

     2》修改SQ默认的数据库

     sq支持多种数据库引擎 默认内嵌了一个数据库 默认打开端口9092 这里使用mysql替代
    启动任意mysql 创建一个数据库 名字:sonar

    找到conf/sonar.properties  将配置文件以下几项打开

    #----- MySQL 5.x
    sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?

    useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
    sonar.jdbc.username=root
    sonar.jdbc.password=123456
    重新启动 使用客户端连接mysql 的sonar库发现多了很多表

     3》SQ汉化
     点击官方文档左侧的Plugins 进入右侧右下角的Localization 点击Chinese 进入了github地址(
    https://github.com/SonarQubeCommunity/sonar-l10n-zh) 对应版本是

    SonarQube 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7
    sonar-l10n-zh 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19
    SonarQube 5.4 5.5 5.6          
    sonar-l10n-zh 1.9 1.10 1.11          
    SonarQube 4.0 4.1            
    sonar-l10n-zh 1.7 1.8            
    SonarQube 3.1 3.2 3.3 3.4 3.5 3.6 3.7  
    sonar-l10n-zh 1.0 1.1 1.2 1.3 1.4 1.5 1.6
    查看对应的版本 5.4需要1.9的sonar-l10n-zh  点击releases下载对应版本
    将下载好的jar 置入  extensionsplugins目录下

    重启服务 访问http://localhost:9090发现变成中文版

    另外一种方式 也可以登录系统  点击配置-系统-更新中心管理插件 可以在线搜索安装chinese插件

    三。Sonar分析项目

    1》命令行使用SonarQube Scanner分析

        进入官方文档 点击Scanners 点击子菜单 Analyzing with SonarQube Scanner 根据官方向导进行配置

     点击 文档顶部的 不同系统版本 这里是  Windows 64 bit   下载后 解压

    设置  sonar-scanner-3.0.3.778-windowsin 设置到环境变量PATH中

    修改 conf/sonar-scanner.properties  指定sonar qube服务器的地址 默认如果按照在本机无需修改 


    sonar.host.url=http://localhost:9000
    找一个有源代码的项目 比如我有个项目叫kafka 在项目的根目录 添加一个配置文件sonar-project.properties 添加内容
    # 当前项目实例的唯一表示
    sonar.projectKey=kafka
    # 显示在sonarqube 界面上的项目名称
    sonar.projectName=kafka
    sonar.projectVersion=1.0

    # 相对于当前配置文件目录 下的源代码目录 不管什么平台路径分隔符只能有 / 不能使用
    sonar.sources=src/main/java

    # 源代码的字符集
    #sonar.sourceEncoding=UTF-8
    进入kafka项目根目录 执行命令  sonar-scanner  出现 执行 EXECUTION SUCCESS 表示成功
    成功后进入qb ui界面 http://localhost:9000 可以看到多出一个kafka的项目列表

    点击项目名称 进入 可以看到该项目的所有统计 包括存在问题

    点击问题进入 就能看到对应的问题列表

    eclipse ide安装sonarlint 实时监测代码质量 插件地址https://github.com/SonarSource/sonarlint-eclipse 可以使用markerplace搜索安装 

    安装使用mars(4.5.2) 无论是markerplace还是下载包离线安装都无法安装 安装Eclipse Java Oxygen版本 可以在markerplace搜索安装 

    查找视图 SonarQube Servers 点击 Connect to a SonarQube server

    选中 sonarqube点击下一步  输入url http://localhost:9000 输入用户名和密码 (admin/admin)  点击完成 抛出错误

    Starting SonarLint for Eclipse 3.3.1.201712071600
    The following plugins do not meet the required minimum versions, please upgrade them on your SonarQube server:
    java (installed: 3.13.1, minimum: 4.0)
    javascript (installed: 2.11, minimum: 2.14)
    因为sonarqube使用 sonar-java插件来扫描java代码 使用 sonar-javascript插件扫描js代码 控制质量 这里我使用的sonarqube必须是 5.6版本 默认的java插件时3.13.1 (https://github.com/SonarSource/sonar-java)最小必须使用4.0 js插件时 2.11 最小必须是 2.14 (https://github.com/SonarSource/SonarJS)可以去github上搜索两个插件到release上下载 删除之前的版本 替换到 extensionsplugins目录即可 
    再次在 SonarQube Servers 右键 Update all project setting 发现不再报错 
    在项目上右键 分析项目 在SonarLint Report查看到所有分析结果  

  • 相关阅读:
    .net注册iis
    hdu 1081To The Max
    hdu 1312Red and Black
    hdu 1016Prime Ring Problem
    hdu 1159Common Subsequence
    hdu 1372Knight Moves
    hdu 1686Oulipo
    hdu 1241Oil Deposits
    hdu 1171Big Event in HDU
    hdu 4006The kth great number
  • 原文地址:https://www.cnblogs.com/ZenoLiang/p/10237485.html
Copyright © 2011-2022 走看看