zoukankan      html  css  js  c++  java
  • SonarQube和Maven的集成

    1.1. SonarQube简介

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

    SonarQube服务结构

    SonarQube能带来什么:

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

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

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

    4.没有代码标准,sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写
    5.没有足够的或者过多的注释,没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降,而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷
    6.潜在的bug,sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug

     

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

    8、以气泡图的方式展示出问题的分布

    9、支持自动生成报告

    10、支持将问题发布到jira和redmine上面,然后redmine和sonarqube之间可以互相访问。

    然后redmine那边会自动生成对应问题

    11、支持问题指派后,以邮件的方式发送到对应的责任人的邮箱:

    12、支持每次项目在使用maven编译一次后,产生的新的问题都会以邮件的方式发送出来。

    13、支持和和maven以及hudson的集成。

    13、能够统计出redmine和jira中对应项目的问题

    14、支持主流的findbugs和checkstyle插件

    15、支持代码设计的分析

    1.2. SonarQube的安装

    SonarQube支持目前主流的数据库,比如Oracle,mysql等。安装过程很简单,此处略去。

    1.              SonarQube的使用

    2.1.SonarQube的配置

    1、管理员登录后,可以使用右上角的配置按钮来进行配置和设置。

    2、选择某个项目,可以查看对应的问题:

    3、进入到某个项目下可以查看与项目相关的所有内容。

    2.2. Sonar和Maven的集成

    目前重点介绍一下这个部分:

    1、在maven的conf下的settings.xml中添加如下的一段连接就可以了

    <profile>

       <id>sonar</id>

       <activation>

          <activeByDefault>true</activeByDefault>

       </activation>

       <properties>

    <sonar.jdbc.url>jdbc:mysql://192.168.0.243:3306/sonar</sonar.jdbc.url>

          <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>

          <sonar.jdbc.username>sonar</sonar.jdbc.username>

          <sonar.jdbc.password>sonar</sonar.jdbc.password>

          <!-- SERVER ON A REMOTE HOST -->

          <sonar.host.url>http://192.168.0.243:9000</sonar.host.url>

       </properties>

    </profile>

    2、在maven编译时,后面加上sonar:sonar参数就OK了。比如:

    clean install -Dmaven.test.skip=true sonar:sonar

    3、执行完后,数据就会展示到sonarqube的平台中,并且在产生了新bug后,会收到提醒邮件。

      【原文归作者所有,欢迎转载,但是保留版权】

  • 相关阅读:
    学习进度条40
    学习进度条39
    学习进度条38
    学习进度条37
    学习进度条36
    iReport5.6.0使用说明
    Mysql 如何创建一张临时表
    SQL语句出现sql关键字
    SQL-order by两个字段同时排序
    js中==和===区别
  • 原文地址:https://www.cnblogs.com/laoqing/p/7192346.html
Copyright © 2011-2022 走看看