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后,会收到提醒邮件。

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

SonarQube和Maven的集成的更多相关文章

  1. idea/eclipse下Maven工程集成web服务(tomcat、jetty)

     idea/eclipse下Maven工程集成web服务 转载请注明出处:http://www.cnblogs.com/funnyzpc/p/8093554.html 应用服务器最常用的一般有这哥仨: ...

  2. Jenkins Jenkins结合GIT Maven持续集成环境配置

    Jenkins结合GIT Maven持续集成环境配置   by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...

  3. jenkins+maven+docker集成java发布(二)#远程发布

    jenkins+maven+docker集成java发布(一)中写了在Jenkins服务器自动部署业务,那需要将java项目部署到其他服务器怎么操作 这里需要依赖插件Publish Over SSH ...

  4. Tomcat+Jenkins+SonarQube+SVN+Maven 集成自动化环境搭建(Windows10环境下)

    说在前面的话: 从接到任务到完成共用了7天的时间.正常人用不到这个时间. 此时的功能表现是: 登录本地JenKins对项目进行构建,能够自动从SVN读取最新代码并按照Maven项目构建,构建完成能够自 ...

  5. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

  6. springmvc+spring+mybatis+maven项目集成shiro进行用户权限控制【转】

    项目结构:   1.maven项目的pom中引入shiro所需的jar包依赖关系 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...

  7. Hudson + SVN + Maven 持续集成实现自动化编译、打包、部署(over SSH 和 Deploy war/ear to a container 两种部署方式)

    下载hudson ,安装部署http://hudson-ci.org/ 将下载的hudson-3.3.3.war放到tomcat的webapps目录下并启动tomcat,输入地址访问 点击Instal ...

  8. 测者的测试技术手册:自动化的自动化EvoSuite:Maven项目集成EvoSuite实战

    EvoSuite是由Sheffield等大学联合开发的一种开源工具,用于自动生成测试用例集,生成的测试用例均符合Junit的标准,可直接在Junit中运行.得到了Google和Yourkit的支持. ...

  9. 照葫芦画瓢系列之Java --- Maven的集成和使用

    一.和Eclipse的集成 1.添加Maven 在windows--> preferences中找到maven选项,如下图: 如果没有上图的Name为apache-maven-3.5.2的项,则 ...

随机推荐

  1. Git点滴记录

    合并多个commit记录 假设我们当前有三个commit信息,现在要将commit hash为 23f92c 和 409978 合并 //git rebase -i HEAD~3 那么我们可以使用 r ...

  2. 快速构建一个简单的单页vue应用

    技术栈 vue-cli webpack vux,vux-loader less,less-loader vue-jsonp vue-scroller ES6 vue-cli:一个vue脚手架工具,利用 ...

  3. PLECS_直流电机基本系统模型

    1.模型图 2.模型仿真结果 (1)Step阶跃t=1s,R=20Ω,V_dc = 120V,那么此时 电源电压波形: 电机电枢电流波形: 电机电磁转矩: 电机转速波形: (2)其他参数不变将R=30 ...

  4. MarkDown 编辑数学公式

    1. 参考博客:http://blog.csdn.net/smstong/article/details/44340637 1 数学公式的web解决方案 在网页上显示漂亮的数学公式,是多年来数学工作者 ...

  5. 阿里云服务器 无法连接svn

    网上所说的在服务器中:1. 配置防火墙 2.svnserve.conf没配置好,3.svn客户端缓存,都进行排查处理,还是连接不上. 最后使用ip add 查看服务器网卡ip命令 发现无法看到当前服务 ...

  6. Xen的虚拟化详解

    最近在看Xen在2003年发表在sosp上的论文<Xen and the Art of Virtualization>,中途遇到一些不理解的技术点,在网络上查找相关资料,发现大多数人都只是 ...

  7. 老男孩Python全栈开发(92天全)视频教程 自学笔记05

    day5课程内容: 集成开发环境(IDE) VIM #经典的Linux下的文本编辑器 Eclipse #Java IDE Visual Studio #微软开发的IDE notepad++ subli ...

  8. linux清屏命令(clear,reset)

    (1)clear 这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息.一般都会用这个命令. (2)reset 这个命令将完全刷新终端屏幕,之前的终端输入 ...

  9. dwr3+spring实现消息实时推送

    最近项目要实现一个消息推送的功能,主要就是发送站内信或者系统主动推送消息给当前在线的用户.每次的消息内容保存数据库,方便用户下次登录后也能看到.如果当前用户在线,收到站内信就主动弹出提示.一开始想到的 ...

  10. CAN总线知识总结

    CAN总线知识整理 一.特点 二.CAN物理层 隐性(逻辑1),显性(逻辑0). 三.CAN数据链路层 3.1通信机制 3.2数据帧 3.3错误帧 3.4其它帧格式 3.5位定时与同步