git+maven+sonar对代码提交前进行质量检查方案

git+maven+sonar

git+maven+sonar对代码提交前进行质量检查方案
参考文章:https://baijiahao.baidu.com/s?id=1698285025213588807&wfr=spider&for=pc

文章目录

  • git+maven+sonar
  • 前言
  • 一、git的钩子hook 介绍
  • 二、使用步骤
    • 1.在Java项目配置pom.xml
    • 2.验证结果
    • 3.尝试git提交代码执行sonar
  • 总结


前言

为了规范代码质量,使开发人员写出更高质量的代码,实践了一下git-hooks中的pre-commit钩子,可以在提交代码时强制校验本地代码质量,若不符合指定规则不给予代码的提交。

一、git的钩子hook 介绍

和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本。有两组这样的钩子:客户端的和服务器端的。客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。你可以随心所欲地运用这些钩子。

钩子都被存储在 Git 目录下的 hooks 子目录中。也即绝大部分项目中的 .git/hooks,默认存在的都是示例,其名字都是以 .sample 结尾,如果你想启用它们,得先移除这个后缀。把一个正确命名且可执行的文件放入 Git 目录下的 hooks 子目录中,即可激活该钩子脚本。这样一来,它就能被 Git 调用。

本次方案实现效果就是通过pre-commit钩子实现。

二、使用步骤

1.在Java项目配置pom.xml

1、在pom.xml中加入以下配置

<plugin>
    <groupId>io.github.phillipuniverse</groupId>
    <artifactId>githook-maveplugin</artifactId>
    <version>1.0.5</version>
    <executions>
        <execution>
            <goals>
                <goal>install</goal>
            </goals>
            <configuration>
                <hooks>
                    <pre-commit>
                     echo running validation build
                     cd 项目名称
                     mvn clean install -Dmaven.test.skip=true
                     mvn sonar:sonar
                    </pre-commit>
                </hooks>
            </configuration>
         </execution>
    </executions>
</plugin>

该插件可以使得在install以后在git本地仓库的.git\hooks目录下生成一份自定义的pre-commit文件,该文件是git进行提交代码执行的钩子函数,函数内容在插件pre-commit中可以编写,如下图:
git+maven+sonar对代码提交前进行质量检查方案_第1张图片
此时pre-commit中的内容如下图:在这里插入图片描述

2、在pom文件继续添加sonar相关的插件

<properties>     
	<sonar.login>sonartoken</sonar.login>
    <sonar.host.url>http://sonar服务器ip:9000/</sonar.host.url>
    <sonar.projectkey>projectkry</sonar.projectkey>
</properties>
<plugin>
     <groupId>org.sonarsource.scanner.maven</groupId>
     <artifactId>sonar-maven-plugin</artifactId>
     <version>3.6.0.1398</version>
</plugin>

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

获取token的办法,首先通过登录sonar服务器,再如下图操作:
git+maven+sonar对代码提交前进行质量检查方案_第2张图片

2.验证结果

通过maven sonar:sonar命令可以对项目执行代码质量扫描,如果出现如下结果证明这个sonar插件有效。
git+maven+sonar对代码提交前进行质量检查方案_第3张图片
再打开sonar WBE端查看,可以看到项目的报告已经生成。
git+maven+sonar对代码提交前进行质量检查方案_第4张图片

3.尝试git提交代码执行sonar

1、尝试提交有异常的代码:
git+maven+sonar对代码提交前进行质量检查方案_第5张图片
把有问题的代码进行提交,因为替换了pre-commit文件, 所以在代码提交前会执行pre-commit里面的脚本,脚本首先通过对代码进行 mvn sonar:sonar 命令操作。
idea上显示结果如图:
在这里插入图片描述
再打开sonar WBE端查看,可以看到项目标记了failed
git+maven+sonar对代码提交前进行质量检查方案_第6张图片
将错误代码删除再commit,再打开sonar WBE端查看,可以看到项目标记了passed
git+maven+sonar对代码提交前进行质量检查方案_第7张图片

总结

目前只做到了在进行git commit时使用sonar对代码进行检查,后面继续实现代码中有bug则进行阻断,不让其进行git push操作。最后感谢司鹏飞学长的帮助。

你可能感兴趣的:(git+maven+sonar,maven,java)