某天上午正在摸鱼的小邓,突然被领导拉倒一个2年前项目的现场问题沟通群,说是现场数据无法入库,需要排查,奈何不知道版本,无奈的小邓值得用时间记录一个点一个点的从gitlab中查找,为了防止后续提供到现场的版本找不到,故在包里记录提交的时间点和git的commitId效果如下:

只需在项目构建的时候添加git-commit-id-plugin插件即可,从此再也不用担心找不到时间点对应的代码了。
配置如下(会在class文件.git目录下生成一个application-version.properties文件):
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>4.0.0</version>
<executions>
<execution>
<id>get-the-git-infos</id>
<goals>
<goal>revision</goal>
</goals>
<phase>initialize</phase>
</execution>
<execution>
<id>validate-the-git-infos</id>
<goals>
<goal>validateRevision</goal>
</goals>
<phase>compile</phase>
</execution>
</executions>
<configuration>
<dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
<prefix>asset.git</prefix>
<dateFormat>yyyy.MMdd</dateFormat>
<dateFormatTimeZone>${user.timezone}</dateFormatTimeZone>
<verbose>false</verbose>
<abbrevLength>8</abbrevLength>
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<generateGitPropertiesFilename>${project.build.outputDirectory}/application-version.properties
</generateGitPropertiesFilename>
<format>properties</format>
<gitDescribe>
<skip>false</skip>
<always>true</always>
<dirty>-dirty</dirty>
<tags>true</tags>
</gitDescribe>
<validationProperties>
<validationProperty>
<name>validating project version</name>
<value>${project.version}</value>
<shouldMatchTo><![CDATA[^.*-.*$]]></shouldMatchTo>
</validationProperty>
</validationProperties>
</configuration>
</plugin>



















