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>官方readme中包含完整配置和解释,我这里使用的是删减版,也是我们项目中使用的。
我们在项目启动的时候会去Load信息文件,通过固定url接口暴露出来。
关于作者