代码提交(commit)时PMD(阿里规约)检查配置

本文介绍了如何配置Git pre-commit钩子,结合Gradle和PMD插件,实现在提交代码时执行阿里巴巴的代码规约检查。通过在pre-commit文件中设置脚本,当代码存在问题时阻止commit操作。详细步骤包括设置ruleset.xml文件、添加相关jar包、创建gradle配置文件并应用到项目。此外,文章还提到了可能遇到的问题及其解决方案。
摘要由CSDN通过智能技术生成

本文实现效果:当开发者commit代码时进行pmd静态代码检查,如果代码有问题就会终止commit并且报告错误内容

原理

1.git hooks文件夹中有个pre-commit文件,当执行“git commit”命令时git会执行此文件中的脚本,如果脚本以非0退出则会终止commit导致commit失败,因此可以在此文件中执行代码检查,当代码有问题时非0退出使无法提交。

注意:hooks中原始的pre-commit文件是pre-commit.sample,去掉.sample后文件才会生效

2.gradle中有pmd插件,配置此插件,利用此插件的task执行代码检查

涉及到的文件

1.pre-commit

#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments.  The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".

if git rev-parse --verify HEAD >/dev/null 2>&1
then
   against=HEAD
else
   # Initial commit: diff against an empty tree object
   against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi

echo "start pmd task"

SCRIPT_DIR=$(dirname "$0")
SCRIPT_ABS_PATH=`cd "$SCRIPT_DIR"; pwd`
$SCRIPT_ABS_PATH/../../gradlew  -PcheckCommit="true" pmd
if [ $? -eq 0   ]; then
    echo "pmd OK"        //成功时的提示语,可修改
   exit 0
else
   echo "pmd fail, for details see /build/reports/pmd/pmd.html"         //失败时的提示语,可修改
    exit 1
fi

2.ruleset.xml

此文件中包含所有阿里规约,pmd执行代码检查时会依赖此文件中的规则进行检查

阿里规则获取方法(将多个文件合并到一个中)

  1. p3c/p3c-pmd/src/main/resources/rulesets/java at master · alibaba/p3c · GitHub
  2. 解压下一步中的p3c-pmd-x.x.x.jar

由于内容较多,此处不展示

3.阿里规约和pmd相关jar包

获取方法:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值