代码质量管理-Sonar 使用手册

持续集成之代码质量管理-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

下载地址: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规则。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值