代码质量管理-Sonar 使用手册
持续集成之代码质量管理-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 使用手册相关推荐
- 持续集成与自动化部署 - jenkins sonar代码质量管理平台 部署和基础使用(五)...
1 jenkins 安装参考链接 1.1 安装jenkins [root@test-node3 ~]# yum install -y java-1.8.0 [root@test-node3 ~]# c ...
- Sonar代码质量管理
介绍 Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程 ...
- 代码质量管理工具】——sonar
原文地址:https://blog.csdn.net/luckystar689/article/details/53871821 ----------------------------------- ...
- 使用 Sonar 进行代码质量管理
参考资料: 使用 Sonar 进行代码质量管理 SonarQube的安装.配置与使用 SonarLint(Sonar) 代码质量管理 转载于:https://www.cnblogs.com/wangw ...
- dingding(钉钉)+sonar(代码质量管理工具)通知并打包成docker容器运行
项目地址:https://gitee.com/vians/dingding-sonar dingding-sonar-docker 基于dingding-sonar的作者,钉钉的sonar集成通知,钉 ...
- 【代码质量管理工具】——sonar
[前言] bug越改越多,程序一换数据就崩,这就是目前我们系统的一个现状.在这之前,进行过前后台代码规范整理,代码判空等工作,但这是人工检测的,有点慢,效率也比较低.当重新导入数据之后,模块大多都起不 ...
- Sonar Qube连续代码质量管理(一)熟悉Sonar Qube7.6和Scanner-3.3.0.1492
前言 Sonar是一个管理代码质量的开放开源的平台,在我看来更多的把它理解成为一个对代码质量更好把控的工具.它可以快速的定位代码中潜在的或者明显的错误,可以从多个维度检测代码情况,提高项目源码的质量管 ...
- Sonar Qube连续代码质量管理(三)sonar-scanner-3.3.0.1492在Windows环境下安装部署和代码检查使用
继续上篇内容,对sonar-scanner在Windows 10环境下安装部署操作步骤进行分解,安装过程相对较简单,并且作为sonar客户端通常都是安装在开发设备上,后期一般不会考虑在Linux上部署 ...
- 【代码质量管理开源平台】sonar的安装以及使用
sonar的安装以及使用 简介 1. sonar是什么 2. SonarQube与Sonar 安装 1.下载sonarqubexxx.zip并且解压即可: 2.配置数据库 3.重启sonarQube会 ...
最新文章
- SQL Server主从数据库同步方式及同步问题解决方案总结
- QQ牧场在高速模式下的一些小bug
- 为何jsp 在resin下乱码,但在tomcat下却工作良好的问题
- Linux复习资料(一)、VM虚拟机安装教程
- 锁定 ASP.NET 配置设定
- 为什么新装的mysql5.7服务无法启动_Mysql5.7为什么无法启动?请大家帮忙
- 「Linux」VMware安装centos7(一)
- SSH框架+mysql+tomcat 服务器 中文乱码解决方案
- hive 强转为string_String 源码浅析————终结篇
- poj1083 解题报告(poj 1083 analysis report)
- 硬笔行书字帖3500常用字_硬笔行书每日一字 · 出
- ppt抽奖vba代码
- 天空之城简谱用计算机,原神天空之城琴谱 数字版简谱分享
- 程序员如何提升自己的能力
- ribbon整合eureka时报错Request URI does not contain a valid hostname: xxxx
- TRS专题制作选件手册
- 国外部分音乐人工智能/音乐科技研究机构科研项目简介
- JS运动从入门到兴奋1
- html的绝对定位脱离文档流吗,子元素position:absolute定位之后脱离文档流,怎么使子元素撑开父元素...
- 图片放大出现锯齿问题