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

Git+Maven+Sonar在提交代码前实现代码质量检查。一.导言为了规范代码质量,让开发者能够写出更高质量的代码,实践了git-hooks中的预提交钩子,在提交代码时可以强制检查本地代码质量。如果不符合指定的规则,代码将不会被提交。二、钩子git的钩子介绍像其他版本控制系统一样,...

Git+Maven+Sonar在提交代码前实现代码质量检查。

一.导言

为了规范代码质量,让开发者能够写出更高质量的代码,实践了git-hooks中的预提交钩子,在提交代码时可以强制检查本地代码质量。如果不符合指定的规则,代码将不会被提交。

二、钩子git的钩子介绍

像其他版本控制系统一样,Git可以在某些重要动作发生时触发定制脚本。有两组这样的挂钩:客户端和服务器端。客户机钩子由提交和合并等操作调用,而服务器钩子用于网络操作,如接收推送的提交。你可以随意使用这些钩子。

钩子存储在Git目录下的Hooks子目录中。也就是,。git/hooks在大多数项目中,默认都是例子,名字都以。样本。如果你想启用它们,你必须先删除这个后缀。将一个正确命名的可执行文件放在Git目录的hooks子目录中,以激活hook脚本。这样就可以被Git调用了。

这个方案的效果是通过预提交钩子实现的。

三。声纳简介

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

通过插件,可以支持20多种编程语言的代码质量管理和检测,包括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插件实现的。

四。文本

4.1.在Java项目中配置pom.xml

4.1.1.将以下插件添加到pom.xml中

4.1.2.这个插件可以在。安装后git本地仓库的githooks目录。这个文件是git执行提交代码的钩子函数,函数的内容可以写在插件预提交中,如下图所示:

4.1.2、在pom文件继续添加sonar相关的插件4.1.2.继续在pom文件中添加声纳相关的插件。

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

要获取令牌,首先登录sonar服务器,然后如下图所示进行操作:

动词 (verb的缩写)结果验证

如图,可以通过***ven sonar:sonar命令扫描项目的代码质量。如果出现以下结果,说明这个声纳插件是有效的。

打开声纳WBE终端查看,可以看到该项目的报告已经生成。

第四,尝试git提交代码来执行sonar

4.1.首先,钩子脚本应该由mvn install命令生成。

假设安装项目成功,打开。githooks项目所在的目录,你会看到预提交文件。打开文件,你会发现写的脚本内容是用githook-***ven-plugin插件写的shell脚本内容,证明插件已经生效。

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

4.2.尝试提交代码,但出现异常:

提交方法中有问题的代码进行测试。

提交有问题的代码,因为预提交文件被替换,所以预提交中的脚本会在代码提交前执行。脚本首先对代码进行mvn sonar:sonar命令操作,然后调用shell命令curl获取声纳的扫描报告,并根据报告判断代码是否可以提交(具体见shell脚本实现)。

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

看正常代码。

注释掉错误代码,然后再次提交。

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

本文来自止步投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/482109.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 03-30
下一篇 03-30

相关推荐

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

    Git+Maven+Sonar在提交代码前实现代码质量检查。一.导言为了规范代码质量,让开发者能够写出更高质量的代码,实践了git-hooks中的预提交钩子,在提交代码时可以强制检查本地代码质量。如果不符合指定的规则,代码将不会被提交。二、钩子git的钩子介绍像其他版本控制系统一样,

    2023-03-30 09:29:01
    380 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信