博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代码质量管理-Sonar 使用手册
阅读量:4148 次
发布时间:2019-05-25

本文共 2562 字,大约阅读时间需要 8 分钟。

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

简介

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

Sonar 服务框架

sonar主要作用

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

·        检查设计存在的潜在缺陷:SonarQub e 过插 F indbugsCheckstyl 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

下载地址: 

 

将下载好的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提供提供了中文插件,以便更好地熟悉使用。

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

 

集成项目

使用maven 集成

修改项目pom文件,如图所示:

<!--https://mvnrepository.com/artifact/org.codehaus.sonar/sonar-maven-plugin -->

<dependency>
   
<groupId>org.codehaus.sonar</groupId>
   
<artifactId>sonar-maven-plugin</artifactId>
   
<version>5.1</version>
</dependency>

 

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

 

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规则。

你可能感兴趣的文章
VUe+webpack构建单页router应用(一)
查看>>
(python版)《剑指Offer》JZ01:二维数组中的查找
查看>>
Spring MVC中使用Thymeleaf模板引擎
查看>>
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>
XHProf-php轻量级的性能分析工具
查看>>
OpenCV gpu模块样例注释:video_reader.cpp
查看>>
就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
查看>>
Mysql复制表以及复制数据库
查看>>
Linux分区方案
查看>>
如何使用 systemd 中的定时器
查看>>
git命令速查表
查看>>
linux进程监控和自动重启的简单实现
查看>>
OpenFeign学习(三):OpenFeign配置生成代理对象
查看>>
OpenFeign学习(四):OpenFeign的方法同步请求执行
查看>>
OpenFeign学习(六):OpenFign进行表单提交参数或传输文件
查看>>
Ribbon 学习(二):Spring Cloud Ribbon 加载配置原理
查看>>
Ribbon 学习(三):RestTemplate 请求负载流程解析
查看>>
深入理解HashMap
查看>>
XML生成(一):DOM生成XML
查看>>