代码编织梦想

环境

git : git version 2.15.0
java: 1.8+

背景

虽然项目中引入了checkstyle,并且编译时,会进行检查报错。但是每次走到项目编译时,其实已经有点晚了,来不及了。
所以需要在git commit 之前进行检查,这样效果会更好些。

前提条件:你已经在项目中配置了checkstyle

配置步骤

在路径:项目名/.git/hooks/下,放两个文件:

  1. 创建名为:pre-commit的脚本。
  2. checkstyle-8.41.1-all.jar 文件。
    https://search.maven.org/artifact/com.puppycrawl.tools/checkstyle/8.41.1/jar
    右上角有Downloads下载按钮。

pre-commit脚本

存放路径:项目名/.git/hooks/目录下:

#!/bin/bash
#@author:jimo#
#@func:pre-commit#
## cp ./check-style/pre-commit ./.git/hooks/

# 一个打印函数,前后加空行
function print(){
    echo ""
echo "===========$*============"
echo ""
}

print "避免NPE是程序员的基本修养!"
print "开始style checking"

wd=`pwd`
print "当前工作目录:$wd"

check_jar_path="$wd/.git/hooks/checkstyle-8.41.1-all.jar"
check_xml_path="$wd/checkstyle.xml"

# echo $check_jar_path $check_xml_path

# 清空temp文件
rm -f temp

is_err=0
is_warn=0

for file in `git status --porcelain | sed s/^...// | grep '\.java$'`;do
path="$wd/$file"
print "检查文件:$path"
re=`java -jar $check_jar_path -c $check_xml_path $path >> temp`
err=`cat temp | grep "ERROR"`
warn=`cat temp | grep "WARN"`
info=`cat temp`
if [[ $err = *"ERROR"* ]];then
print $err
is_err=1
fi
if [[ $warn = *"WARN"* ]];then
print $warn
is_warn=1
fi
done

print "检查完成,祝你好运"

rm -f temp

if [ $is_err -ne 0 ] || [ $is_warn -ne 0 ]
then
print "请先符合style才能提交!"
exit 1
fi

exit 0

checkstyle-8.41.1-all.jar

这个jar包存放的路径项目名/.git/hooks/下。

修改pre-commit 脚本权限

chmod 755 pre-commit

校验

虽然写出不规范的代码;
然后执行git commit -am "fix:测试效果"

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013066244/article/details/127152105

git学习 - git commit检查以及跳过检查_alps1992的博客-爱代码爱编程_跳过husky

钩子 钩子都被存储在 Git 目录下的 hooks 子目录中。 也即绝大部分项目中的 .git/hooks 。 当你用 git init 初始化一个新版本库时,Git 默认会在这个目录中放置一些示例脚本。这些脚本除了本身可

checkstyle + gradle + git pre-commit 实现代码提交前对代码规范的检查_ckwbeyond的博客-爱代码爱编程

我们的目的是想在代码commit之前去做这个检查,把不符合规范的代码标记出来,直到修改完成之后才允许提交。脚本涉及到几个重要的文件:1.pre-commit, 这个是git的一个hook文件,可以帮助我们在commit前去做一些事情,比如,调用我们第二步定义的checkstyle。2.checkstyle.gradle,这里面主要包含gradle的一个ta

gitlab+checkstyle实现代码上传时进行代码规范检查_hu_chuck的博客-爱代码爱编程_gitlab 代码规范检查

一.背景     最近了解到可以通过gitlab+jekens做代码的自动化部署,但是项目中并不需要自动部署。同时最近一直让师弟在做代码review的事情,在想能不能通过gitlab来做代码的检测。虽然通过idea阿里的插件以及eclipse的插件都是可以做到代码规范检测,但是人都是有惰性的,最会忘记去做检测就上传代码。所以想在代码上传的时候做一个限制。

android git commit之前进行checkstyle检查_nmzkchina的博客-爱代码爱编程

转自: https://blog.csdn.net/u010479969/article/details/52782060 背景:开发的人员越来越多,水平习惯参差不齐,这就导致了代码的维护越来越复杂,所以希望有一个规范,可以规范大家的提交,所以出现了我所做的这个通过hook实现在代码commit之前进行检查。 实现效果:针对我所提交的代码进行checkS

checkstyle git hook 简单配置_newshij的博客-爱代码爱编程

本次配置 Githook主要有以下几个操作步骤 下载Checkstyle jar包 官网地址,GitHulb,目前最近版本为checkstyle-8.12-all.jar 下载对应的规范约束xml文件,目前主要是有两种

利用gradle plugin和git hook进行自动化代码格式化_糖糖糖糖糖糖糖糖糖糖糖糖糖糖糖糖糖糖的博客-爱代码爱编程

俗话说,非我族类其心必异。在软件项目的开发过程中,整个团队万万不可同床异梦离心离德,因此统一代码规范也就至关重要了。 良好的代码规范可以增加代码的可读性从而提高代码的可维护性。同时,统一的代码规范更可以减少不必要的麻烦,比如一个人习惯两个空格缩进,另一个人设置了四个空格,如果第二个人仅仅修改了第一个人的部分代码但此时IDE进行了格式化,版本控制的

git下使用checkstyle构建代码风格检查_唯一昵称真难的博客-爱代码爱编程_checkstyle git

背景 出于团队协作开发的效率考虑,决定引入checksytle来规范代码风格.统一了风格,办起事来自然干净利落咯. 那引入之后有什么优点呢: 统一了代码风格,这样看起代码来不会觉得头疼.能够矫正我们的撸代码规

java代码规范之checkstyle + git hook-爱代码爱编程

2019独角兽企业重金招聘Python工程师标准>>> CheckStyle简介 CheckStyle提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱出来。 CheckStyle检验的主要内容如下。 Annot

git commit message典型实例_weixin_34163553的博客-爱代码爱编程

2019独角兽企业重金招聘Python工程师标准>>> 最近发现一些顶级开源项目的git提交日志写得很赞。多读类似提交日志,能大大提高自己提交日志的message的规范性。 摘抄部分典型的示例如下: cb4964 2016-08-25 | ZOOKEEPER-2489: Upgrade Jetty de

gitlab中checkstyle的使用(eclipse)-爱代码爱编程

我现在经手的项目,都是放在gitlab上的,然后他们设置了checkstyle,就是让你用规范提交,如果代码的格式不符合规范,就不让你提交。比如定义一个变量,那开头的第一个字母一定要小写,大写就不让你提交。大致就是这样的要求。 然后本地和服务器的格式挂钩也需要配置。项目里有一个checkstyle的文件夹,里面写了如何配置,但是写的比较简略,也稍

Maven集成CheckStyle-爱代码爱编程

最近在项目组里开发项目的时候,经常遇到项目里面代码格式不统一,merge 的时候经常冲突一大片,在网上搜索,查到了 Maven 可以集成 checkstyle 进行代码格式化审查。现将我的经验做以分享。 配置CheckStyle插件 在项目根目录新建一个 config 文件夹,将代码规约配置文件放到此路径下,当然你也可以根据自己的需求去自行定义

git 客户端 所有客户端 钩子_git钩子及checkstyle的使用-爱代码爱编程

需求背景 最近在项目开发中,经常遇到库上的代码编不过的场景。有些员工上传代码之前并不去编译,导致测试环境不可用。所以就想到使用git钩子在代码上传之前进行检查,不通过的代码无法上传。 这里还用到了checkstyle插件,主要是制定一些代码规则,对一些待提交的文件进行检查。 安装checkstyle插件 maven中集成checkstyle

GitLab服务端集成CheckStyle实现代码自动审核-爱代码爱编程

1. 概述 对于Git通过Hook实现静态代码检测,大致分为两个方向: 1>借助Client-Side-Hook来实现。 此方法对应于研发人员工作机上的${PROJECT_ROOT}/.git/hooks/pre-commit脚本实现。 2>借助Server-Side-Hook来实现。 此方法分为2个方面,一个是全局性配置(下面会详细

Git 约定式提交-爱代码爱编程

概述 每次提交代码的时候,我们都需要为我们本次修改的内容添加一段描述,例如: git commit -m "Initial commit"; git commit -m "修复了一些已知问题。"; git commit -m "增加了新特性。"; 但实际上有些 commit message 千奇百怪,比如以下这种: 一次 commit 应该准确

git,gitee,github使用总结(内含命令行详细操作)_etceriksen的博客-爱代码爱编程

1.各个区域的关系 (1) git add命令会先把代码提交到暂存区进行存储 (2) git commit会把代码从暂存区提交到本地库 此时代码依旧在本地 (3) 无论是提交到暂存区还是工作区 ,代码都是没有历史版本记录的。只有提交到本地库之后 代码才会有历史版本修改的记录。 2.Git常用命令 进行一系列的操作命令 按照顺序从上往下 (1