zoukankan      html  css  js  c++  java
  • SonarQub e 与 J enkin s 简 介

    SonarQub e 是 一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测, 如 J ava、Python、Groovy、C、C++等几十种编程语言的检测。它主要的核心价值体现在如下几个方面:

    • 检查代码是否遵循编程标准:如命名规范,编写的规范等。
    • 检查设计存在的潜在缺陷:SonarQub e 通 过插 件 F indbugs、Checkstyl e 等 工具检测代码存在的缺陷。
    • 检测代码的重复代码量:SonarQub e 可 以展示项目中存在大量复制粘贴的代码。
    • 检测代码中注释的程度:源码注释过多或者太少都不好,影响程序的可读可理解性。
    • 检测代码中包、类之间的关系:分析类之间的关系是否合理,复杂度情况。

    SonarQub e 平 台是 由 4 个 部分组成:

    • SonarQube Server
    • SonarQube Database
    • SonarQube Plugins
    • SonarQube Scanner

    SonarQube 与 SonarQube-Scanner 的安装与配置

    SonarQube

    在 S onarQub e 官 网,我们可以下载最新 的 S ona r 安 装包,本节 以 L inu x 系 统为例,搭 建 S onarQub e 平 台,解压到任意目录,如:unzip sonarqube5.6.zip。

    SonarQub e 自带了一个 H2 的数据库,当然为了获得更好的性能我们可以指定一个外部的数据库,在这里我们使用 MySQL 数据库。 先 在 M ysq l 数 据库中建立一 个 S ona r 数 据库,主要用于存放分析结果的数据,如 图 1 :

    进入解压 的 S onarQue b 目 录,在系统路径里面配 好 p ath,配置如下:

    1
    2
    3
    4
    5
    #sonar profile 
    export
                        SONAR_HOME=/usr/local/sonarqube-5.6.1 
    export
                        PATH=${SONAR_HOME}/bin:${PATH}

    并修改配置文 件 s onar.properties,如下:

    1
    2
    3
    4
    5
    6
    7
    # sonar.jdbc.username=root 
    #sonar.jdbc.password=root 
    #sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?
    useUnicode=true&characterEncoding=
    utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance 
    #option properties 
    sonar.jdbc.driverClassName:com.mysql.jdbc.Driver

    基本配置完成,在命令行启 动 S onarQube:进 入 S onarQub e 安 装目录,进 入 b i n 目 录,运行 ./sonar.sh start, 打 开 h ttp://localhost:9000,如果显 示 S onarQub e 主 页, 则 S onarQub e 安 装成功。如 图 2。

    如果需要关 闭 S onarQube,则执行 ./sonar.sh stop

    如果需要重 启 S onarQube,则执行 ./sonar.sh restart

    SonarQube Scanner

    下 载 S onar-Scanner-2.6.1,解压到目录(可解压到任意目录)。修改系统路 径 p ath,如下:

    1
    2
    3
    4
    5
    #sonar-scanner profile 
    export
                        SONAR_SCANNER_HOME=/usr/local/sonar-scanner-2.6.1 
    export
                        PATH=${SONAR_SCANNER_HOME}/bin:${PATH}

    修 改 c on f 目 录的配置文 件 s onar-scanner.properties,具体如下:

    sonar.jdbc.username=root 
    sonar.jdbc.password=root 
    sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode
    =true&characterEncoding=utf8&rewriteBatchedStatements=true&
    useConfigs=maxPerformance 
    sonar.sourceEncoding=UTF-8 
    sonar.login=admin 
    sonar.password=admin

    在命令行中执行 sonar-runner -h  查看是否安装成功。 

    在 Jenkins 项目中使用构建后步骤进行代码分析

    在 Jenkins 项目构建过程中加入 SonarScanner 进行代码分析

    配置 SonarQube Scanner 构建步骤,在 Task to run 输入框中输入 scan,即分析代码;在 JDK 选择框中选择 SonarQube Scanner 使用的 JDK(注意这里必须是 JDK 不能是 JRE);Path to project properties 是可选择的输入框,这里可以指定一个 sonar-project.properties 文件,如果不指定的话会使用项目默认的 properties 文件;Analysis properties 输入框,这里需要输入一些配置参数用来传递给 SonarQube,这里的参数优先级高于 sonar-project.properties 文件里面的参数,所以可以在这里来配置所有的参数以替代 sonar-project.properties 文件,下面列出了一些参数,sonar.language 指定了要分析的开发语言(特定的开发语言对应了特定的规则),sonar.sources 定义了需要分析的源代码位置(示例中的$WORKSPACE 所指示的是当前 Jenkins 项目的目录),sonar.java.binaries 定义了需要分析代码的编译后 class 文件位置;Additional arguments 输入框中可以输入一些附加的参数,示例中的-X 意思是进入 SonarQube Scanner 的 Debug 模式,这样会输出更多的日志信息;JVM Options 可以输入在执行 SonarQube Scanner 是需要的 JVM 参数。

    sonar.projectName=testSonar 
    sonar.projectVersion=1.0 
    sonar.language=java 
    sonar.java.binaries=$WORKSPACE/testSonar/target/test-classes/ 
      sonar.sources=$WORKSPACE/testSonar/src

    查看分析结果

    在新建的 Jenkins 项目的构建的 Console Output 中可以得到 SonarQube 分析结果的链接

  • 相关阅读:
    java基础知识要点总结之几个重要关键字(关于static、this、final、)
    网上大篇幅的坑人的struts2入门案例
    oc4j(oracle container for j2EE)使用笔记一
    清空数据库中某个表的两种操作
    MyEclipse下将应用部署到tomcat严重: Error initializing endpoint java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
    jsp----错误页设置
    jsp设置MIME类型
    jsp输出显示表格
    jsp输出方式
    Linux操作
  • 原文地址:https://www.cnblogs.com/zhouyideboke/p/15038848.html
Copyright © 2011-2022 走看看