某天上午正在摸鱼的小邓,突然被领导拉倒一个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>