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