git服务端钩子多分支(git钩子触发条件)

Git+Maven+Sonar实现提交代码前进行代码的质量检查

一、前言

为了规范代码质量,使开发人员写出更高质量的代码,实践了一下git-hooks中的pre-commit钩子,可以在提交代码时强制校验本地代码质量,若不符合指定规则不给予代码的提交。

二、git的钩子hook 介绍

和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本。有两组这样的钩子:客户端的和服务器端的。客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。你可以随心所欲地运用这些钩子。

钩子都被存储在 Git 目录下的 hooks 子目录中。也即绝大部分项目中的 .git/hooks,默认存在的都是示例,其名字都是以 .sample 结尾,如果你想启用它们,得先移除这个后缀。把一个正确命名且可执行的文件放入 Git 目录下的 hooks 子目录中,即可激活该钩子脚本。这样一来,它就能被 Git 调用。

本次方案实现效果就是通过pre-commit钩子实现。

三、sonar的介绍

Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量。

通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测。

3.1、sonar支持的客户端

除了数据库和web服务器之外,Sonar还有很重要的一部分:客户端。客户端使用具体的程序工具进行分析,不同的语言,不同的项目构建类型可以使用不同的客户端程序。

Sonar提供很多类型的客户端:

客户端 说明 Sonar Runner 推荐默认客户端 Maven 如果项目使用Maven构建推荐使用此种方式 Ant 如果项目使用ant构建则推荐 CI Engine 持续集成,比如Hudson,Jenkins

本次正是通过Maven插件方式实现sonar扫描。

四、正文

4.1、在Java项目配置pom.xml

4.1.1、pom.xml中增加如下插件

git服务端钩子多分支(git钩子触发条件)

4.1.2、在pom文件继续添加sonar相关的插件

git服务端钩子多分支(git钩子触发条件)

该插件能够使项目通过sonar:sonar命令实现项目的sonar扫描,其中sonar.login为登陆的token,sonar.host.url为sonar服务的URL,sonar.projectKey为自定义的项目Key(可选)

获取token的办法,首先通过登录sonar服务器,再如下图操作:

git服务端钩子多分支(git钩子触发条件)

再打开sonar WBE端查看,可以看到项目的报告已经生成。

git服务端钩子多分支(git钩子触发条件)

可以看到上图的脚本内容一致。

4.2、尝试提交有异常的代码:

在方法里面提交有问题的代码进行测试。

git服务端钩子多分支(git钩子触发条件)

可以看到没有办法提交,符合设计。

再看正常代码的情况

git服务端钩子多分支(git钩子触发条件)

报告为正常,可以正常提交。

(0)
小多多的头像小多多创始人

相关推荐

发表回复

登录后才能评论