git-commit-id-maven-plugin 插件使用

git-commit-id maven-plugin 是一个比较有意思的插件,可以提供一些git 详细相关的元数据信息到jar 包中,这样有利于我们分析
业务问题(里边包含了git commitid,分支,提交人,提交日志等信息),以下是一个简单试用

项目准备

一个多模块项目

  • 父pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.dalong</groupId>
    <artifactId>versiontest</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>
    <modules>
        <module>first</module>
    </modules>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>pl.project13.maven</groupId>
                <artifactId>git-commit-id-plugin</artifactId>
                <version>4.0.5</version>
                <executions>
                    <execution>
                        <id>for-jars</id>
                        <inherited>true</inherited>
                        <goals>
                            <goal>revision</goal>
                        </goals>
                        <configuration>
                            <generateGitPropertiesFilename>target/classes/first-git.properties
                            </generateGitPropertiesFilename>
                        </configuration>
                    </execution>
                    <execution>
                        <id>for-source-tarball</id>
                        <goals>
                            <goal>revision</goal>
                        </goals>
                        <inherited>false</inherited>
                        <configuration>
                            <generateGitPropertiesFilename>./first-git.properties</generateGitPropertiesFilename>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <dateFormat>dd.MM.yyyy '@' HH:mm:ss z</dateFormat>
                    <verbose>false</verbose>
                    <skipPoms>false</skipPoms>
                    <generateGitPropertiesFile>true</generateGitPropertiesFile>
                    <failOnNoGitDirectory>false</failOnNoGitDirectory>
                    <gitDescribe>
                        <skip>false</skip>
                        <always>false</always>
                        <abbrev>7</abbrev>
                        <dirty>-dirty</dirty>
                        <forceLongFormat>true</forceLongFormat>
                    </gitDescribe>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

简单说明:里边包含了不少信息,核心主要是关于生成的文件以及内容信息,当然还有执行的goal,详细的可以参考github 插件文档介绍

  • 效果

如下,这些信息还都是比较有价值的,有利于分析实际业务问题

说明

以上是一个简单使用的介绍,详细配置参考github 文档,实际上此插件在不少apache 开源项目都有使用到,是一个很不错的插件,值得放到ci/cd 流程中

参考资料

https://github.com/git-commit-id/git-commit-id-maven-plugin
https://github.com/git-commit-id/git-commit-id-maven-plugin/blob/master/docs/use-cases.md

posted on 2024-05-06 07:26  荣锋亮  阅读(182)  评论(0编辑  收藏  举报

导航