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

项目打包记录提交id-LMLPHP

 只需在项目构建的时候添加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>
04-14 16:15