git 客户端 所有客户端 钩子_git钩子及checkstyle的使用

本文介绍了如何利用Git钩子(pre-commit)结合Maven Checkstyle插件,在代码提交前进行静态代码检查,确保代码风格一致性和质量。文章详细展示了如何配置Maven Checkstyle插件以定制检查规则,并提供了具体的Git钩子脚本示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求背景

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

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

安装checkstyle插件

maven中集成checkstyle

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

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

在pom中做如下配置

......

2.17

check-style.xml

……

org.apache.maven.plugins

maven-checkstyle-plugin

${maven.checkstyle.version}

${checkstyle.config.location}

org.apache.maven.plugins

maven-checkstyle-plugin

2.17

checkstyle

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

/p>

"-//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 。此目录下有一些示例,如下所示:

fcdad2f1f8b0ea2a9ef7253fbd223789.png

服务端钩子

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

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

f7ef69d8a4ab344e75bb2b5accfed651.png

参考

Maven CheckStyle Plugin集成

Java代码规范之CheckStyle + Git Hook

自定义 Git - Git 钩子

Git 钩子脚本介绍

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值