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