Maven打包时加入Git信息

我们在开发中遇到了一个问题,有时无法确定一个jar或者war在被打出来的时候是在哪个分支上,当时的commit id是什么。 知道这个id可以让我们知道包的新旧(对于git历史),也可以知道有些功能是否被包含在这个包中。如果在这个包运行时也可以获取这些信息,那么可以给在线调试、bug定位带来更多便利。

在github上有一个现成的maven插件实现了这件事,打包的时候将git的信息写入一个文件。(我们可以想办法把这些信息进一步暴露出来)

这些信息大致包含:

  • commit id
  • 最后提交时间、内容、人、邮箱
  • 打包人和时间

如何安装

在maven配置文件中加入

<plugin>
    <groupId>pl.project13.maven</groupId>
    <artifactId>git-commit-id-plugin</artifactId>
    <version>2.1.13</version>
    <executions>
        <execution>
            <goals>
                <goal>revision</goal>
            </goals>
        </execution>
    </executions>

    <configuration>
        <dateFormat>yyyy.MM.dd HH:mm:ss</dateFormat>
        <verbose>true</verbose>
        <generateGitPropertiesFile>true</generateGitPropertiesFile>
        <gitDescribe>
            <always>false</always>
            <dirty>-dirty</dirty>
            <forceLongFormat>false</forceLongFormat>
        </gitDescribe>
    </configuration>
</plugin>

Github 地址

官方readme中包含完整配置和解释,我这里使用的是删减版,也是我们项目中使用的。

我们在项目启动的时候会去Load信息文件,通过固定url接口暴露出来。

关于作者
一名软件工程师,热爱运动、英语和美食。希望大家在这里可以享用我的发现!