当前位置:网站首页 > 微服务架构 > 正文

git 服务端(git 服务端钩子做代码检查)



需求背景

最近在项目开发中,经常遇到库上的代码编不过的场景。有些员工上传代码之前并不去编译,导致测试环境不可用。所以就想到使用git钩子在代码上传之前进行检查,不通过的代码无法上传。

这里还用到了checkstyle插件,主要是制定一些代码规则,对一些待提交的文件进行检查。

安装checkstyle插件

maven中集成checkstyle

Maven CheckStyle插件提供两种预先定义的规则:sun_checks.xml和google_checks.xml,默认提供的为sun_checks.xml。当然你也可以指定自定义的规则集。默认的检查规则很严格,所以最好自定义规则。

自定义规则集的方法如下:

在pom中做如下配置

2.17

checkstyle

新建check-style.xml配置检查规则

"-//Puppy Crawl//DTD Check Configuration 1.3//EN"

"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

maven编译命令

mvn checkstyle:help 查看帮助

mvn checkstyle:check 查看工程是否满足检查。如果不满足,检查失败,可以通过target/checkstyle-result.xml来查看

mvn checkstyle:checkstyle 查看工程是否满足检查。如果不满足,不会失败,可以通过target/site/checkstyle.html查看检查信息

mvn checkstyle:checkstyle-aggregate 检查工程是否满足检查。如果不满足,不会失败,可以通过target/site/checkstyle.html查看

配置git钩子

和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本。 有两组这样的钩子:客户端的和服务器端的。 钩子都被存储在 Git目录下的 hooks 子目录中。 也即绝大部分项目中的 .git/hooks 。此目录下有一些示例,如下所示:

gitlab如何在MR时进行代码质量检查_git 客户端 所有客户端 钩子

服务端钩子

pre-receive

当用户在本地仓库执行’git-push’命令时,服务器上运端仓库就会调用 pre-receive钩子。在开始更新远程仓库之前,这个钩子被调用。钩子的执行结果(exit status)决定此次更新能否成功。

update

update 脚本和 pre-receive 脚本十分类似,不同之处在于它会为每一个准备更新的分支各运行一次。

假如推送者同时向多个分支推送内容,pre-receive 只运行一次,相比之下 update 则会为每一个被推送的分支各运行一次。

post-receive

post-receive 挂钩在整个过程完结以后运行,可以用来更新其他系统服务或者通知用户。 它接受与 pre-receive

相同的标准输入数据。

客户端钩子

客户端钩子包含pre-commit、prepare-commit-msg、commit-msg、post-commit等,其中最常用的是pre-commit。

pre-commit被 ‘git-commit’ 命令调用, 而且可以通过在命令中添加–no-verify参数来跳过。这个钩子没有参数,在得到提交消息和开始提交(commit)前被调用。如果钩子执行结果是非零,那么 'git-commit’命令就会中止执行。

配置客户端钩子

客户端的钩子使用时,可以把文件后面的.sample去掉,提交代码时就会立即生效。服务端的钩子需要在服务器上面使用。pre-commit集成checkstyle脚本如下:

mvn -Dmaven.test.skip=true clean install

#判断执行上面mvn操作的返回值是否为0

if [ $? -ne 0 ]

then

echo "构建失败,请查看代码问题!"

exit 1;

else

echo "构建成功,开始检查代码问题!"

fi

#使用checkstyle检查代码

mvn checkstyle:check

if [ $? -ne 0 ]

then

echo "构建失败,请查看代码问题!"

exit 1;

else

echo "构建成功,开始检查代码问题!"

fi

配置完成之后,就可以提交代码测试一下,如果代码检查失败,会报错。

gitlab如何在MR时进行代码质量检查_xml_02

参考

Maven CheckStyle Plugin集成

Java代码规范之CheckStyle + Git Hook

自定义 Git - Git 钩子

Git 钩子脚本介绍

gitlab+checkstyle实现代码上传时进行代码规范检查

到此这篇git 服务端(git 服务端钩子做代码检查)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 个人服务器能干嘛(个人服务器是什么意思)2025-04-20 09:18:06
  • 微信hook机器人登陆掉线(微信机器人老是掉线)2025-04-20 09:18:06
  • 微信小程序制作(手机微信小程序制作)2025-04-20 09:18:06
  • pass提供的服务(哪个服务属于pass)2025-04-20 09:18:06
  • git服务器搭建 centos(git服务器搭建 centos 9481)2025-04-20 09:18:06
  • 电力104协议讲解(电力104规约tcp服务器)2025-04-20 09:18:06
  • win10 samba共享服务(samba文件共享服务器搭建)2025-04-20 09:18:06
  • 乔拓云网微信小程序制作怎么收费(乔拓云网微信小程序制作收费吗?)2025-04-20 09:18:06
  • nfs 文件(nfs文件服务器)2025-04-20 09:18:06
  • 微信hook发送消息(微信 hook 消息)2025-04-20 09:18:06
  • 全屏图片