持续集成之代码质量管理-Sonar

简介

Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。可以说是目前最强大的代码质量管理工具之一

Sonar 服务框架

sonar主要作用

·        检查代码是否遵循编程标准:如命名规范,编写的规范等。

·        检查设计存在的潜在缺陷:SonarQub e 通过插件 F indbugs、Checkstyl e 等工具检测代码存在的缺陷。

·        检测代码的重复代码量:SonarQub e 可以展示项目中存在大量复制粘贴的代码。

·        检测代码中注释的程度:源码注释过多或者太少都不好,影响程序的可读可理解性。

·        检测代码中包、类之间的关系:分析类之间的关系是否合理,复杂度情况。

安装启动

配置数据库

使用命令创建数据库,名字为sonar:

CREATE DATABASE sonar CHARACTER SET utf8COLLATE utf8_general_ci

创建一个sonar用户并把这个用户的密码设置为soanr:

CREATE USER 'sonar' IDENTIFIED BY 'sonar';

将创建的sonar数据库的所有权限赋给第三步中创建的sonar用户:

GRANT ALL ON sonar.* TO 'sonar'@'%'IDENTIFIED BY 'sonar';

GRANT ALL ON sonar.* TO 'sonar'@'localhost'IDENTIFIED BY 'sonar';

FLUSH PRIVILEGES;

下载和配置sonar

下载地址:Download | SonarQube

将下载好的sonarqube-7.0解压到服务器

修改配置文件

sonar.jdbc.username=sonar

sonar.jdbc.password=sonar

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

选择对应的启动文件,我的是Linux 64 所以启动命令是 ./bin/linux-x86-64/sonar.sh start 这里有个坑是,启动需要es,es不能是root 用户启动,所以要切换一下用户

启动成功后访问 9000端口即可

默认账号为admin 密码admin

Sonar汉化

SonarQube默认为英文,我们可以安装SonarQube提供提供了中文插件,以便更好地熟悉使用。 GitHub - xuhuisheng/sonar-l10n-zh: Chinese Pack for SonarQube

下载完成将插件放到\extensions\plugins ,重启sonar即可。

集成项目

使用maven 集成

修改Maven 的配置文件 settings.xml 文件,具体配置如下:

<profile><id>sonar</id><activation><activeByDefault>true</activeByDefault></activation><properties><sonar.login>admin</sonar.login><sonar.password>123456</sonar.password><sonar.host.url>http://127.0.0.1:38077</sonar.host.url></properties>
</profile><activeProfiles><!-- make the profile active all the time --><activeProfile>sonar</activeProfile>
</activeProfiles>

Maven 插件会自动把所需数据(如单元测试结果、静态检测结果等)上传到 Sonar 服务器上

在项目里执行命令 mvn sonar:sonar,将代码注入到Sonar中进行分析处理,并将处理结果以XML的形式保存在数据库中。

使用sonar-runner

使用sonar-runner分析项目非常方便,只要在项目工程目录下新建sonar-project.properties文件,内容大致如下:

#key和name保持一致且在sonar下唯一

sonar.projectKey=car_android

sonar.projectName=car_android

#工程版本

sonar.projectVersion=1.0

#源代码目录

sonar.sources=src

#分析的语言

sonar.language=java

#编码

sonar.sourceEncoding=UTF-8

之后在cmd下进入工程目录下运行:sonar-runner–X

运行最终结果显示EXECUTIONSUCCESS即成功。稍候片刻打开sonar查看所有项目看到刚刚分析的项目。

Jenkins 与 SonarQube 集成插件的安装与配置

Jenkins 是一个支持自动化框架的服务器,我们这里不做详细介绍。Jenkins 提供了相关的插件,使得 SonarQube 可以很容易地集成。 登陆 jenkins,点击"系统管理"

搜索安装SonarQube插件,安装完成后,进入系统设置,配置 SonarQube Server 信息

这里有两种方法使用 SonarQube Scanner 进行代码分析,第一种是使用构建后步骤,第二种是在构建的过程中增加 SonarQube Scanner 的步骤,下面我们来分别介绍这两种方法。

自定义Sonar代码审查规则

官方插件默认的规则是不够的,或者说不一定适用于我们团队自己的内部规范,因此,接下来来说说如何定制自己的审查规则。

Sonar扩展代码审查规则的方式有两种:1,使用Java编写Sonar插件;2,在SonarQube界面直接添加XPath规则。

代码质量管理-Sonar 使用手册相关推荐

  1. 持续集成与自动化部署 - jenkins sonar代码质量管理平台 部署和基础使用(五)...

    1 jenkins 安装参考链接 1.1 安装jenkins [root@test-node3 ~]# yum install -y java-1.8.0 [root@test-node3 ~]# c ...

  2. Sonar代码质量管理

    介绍 Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程 ...

  3. 代码质量管理工具】——sonar

    原文地址:https://blog.csdn.net/luckystar689/article/details/53871821 ----------------------------------- ...

  4. 使用 Sonar 进行代码质量管理

    参考资料: 使用 Sonar 进行代码质量管理 SonarQube的安装.配置与使用 SonarLint(Sonar) 代码质量管理 转载于:https://www.cnblogs.com/wangw ...

  5. dingding(钉钉)+sonar(代码质量管理工具)通知并打包成docker容器运行

    项目地址:https://gitee.com/vians/dingding-sonar dingding-sonar-docker 基于dingding-sonar的作者,钉钉的sonar集成通知,钉 ...

  6. 【代码质量管理工具】——sonar

    [前言] bug越改越多,程序一换数据就崩,这就是目前我们系统的一个现状.在这之前,进行过前后台代码规范整理,代码判空等工作,但这是人工检测的,有点慢,效率也比较低.当重新导入数据之后,模块大多都起不 ...

  7. Sonar Qube连续代码质量管理(一)熟悉Sonar Qube7.6和Scanner-3.3.0.1492

    前言 Sonar是一个管理代码质量的开放开源的平台,在我看来更多的把它理解成为一个对代码质量更好把控的工具.它可以快速的定位代码中潜在的或者明显的错误,可以从多个维度检测代码情况,提高项目源码的质量管 ...

  8. Sonar Qube连续代码质量管理(三)sonar-scanner-3.3.0.1492在Windows环境下安装部署和代码检查使用

    继续上篇内容,对sonar-scanner在Windows 10环境下安装部署操作步骤进行分解,安装过程相对较简单,并且作为sonar客户端通常都是安装在开发设备上,后期一般不会考虑在Linux上部署 ...

  9. 【代码质量管理开源平台】sonar的安装以及使用

    sonar的安装以及使用 简介 1. sonar是什么 2. SonarQube与Sonar 安装 1.下载sonarqubexxx.zip并且解压即可: 2.配置数据库 3.重启sonarQube会 ...

最新文章

  1. SQL Server主从数据库同步方式及同步问题解决方案总结
  2. QQ牧场在高速模式下的一些小bug
  3. 为何jsp 在resin下乱码,但在tomcat下却工作良好的问题
  4. Linux复习资料(一)、VM虚拟机安装教程
  5. 锁定 ASP.NET 配置设定
  6. 为什么新装的mysql5.7服务无法启动_Mysql5.7为什么无法启动?请大家帮忙
  7. 「Linux」VMware安装centos7(一)
  8. SSH框架+mysql+tomcat 服务器 中文乱码解决方案
  9. hive 强转为string_String 源码浅析————终结篇
  10. poj1083 解题报告(poj 1083 analysis report)
  11. 硬笔行书字帖3500常用字_硬笔行书每日一字 · 出
  12. ppt抽奖vba代码
  13. 天空之城简谱用计算机,原神天空之城琴谱 数字版简谱分享
  14. 程序员如何提升自己的能力
  15. ribbon整合eureka时报错Request URI does not contain a valid hostname: xxxx
  16. TRS专题制作选件手册
  17. 国外部分音乐人工智能/音乐科技研究机构科研项目简介
  18. JS运动从入门到兴奋1
  19. html的绝对定位脱离文档流吗,子元素position:absolute定位之后脱离文档流,怎么使子元素撑开父元素...
  20. 图片放大出现锯齿问题

热门文章

  1. 【抽奖软件】C++,duilib实现完整抽奖软件系统(有源码)
  2. 简述TCP 三次握手
  3. 网站阻止bing搜索收录的方法
  4. 表格内容居中css样式,css表格中的内容如何居中?css表格中的文本样式介绍
  5. 网络安全的第一道防线:AI
  6. Cisco(PacketTracer) - Smurf攻击实验
  7. 用python写一个排班脚本
  8. [转载] 查找光猫超级管理员密码方法
  9. 批量跑性格测试小程序
  10. 你在B站弹幕玩过哪些梗?