Spring Boot/Maven项目 自动化查看git版本

使用git做版本控制,通常我们需要知道运行环境的版本信息。我们可以在发布代码的时候添加一个说明文件;或者使用maven插件来帮我们自动打包生成的版本信息。这个工具就是: git-commit-id。本文介绍:
1. git-commit-id的简单使用,生成静态的版本信息文件git.properties;
2. git-commit-id与Spring Boot Actuator的整合,以支持运行时通过REST接口查看代码版本信息。

自动生成git.properties

在pom.xml引入git-commit-d插件:
<plugin>
    <groupId>pl.project13.maven</groupId>
    <artifactId>git-commit-id-plugin</artifactId>
    <version>2.2.5</version>
    <executions>
        <execution>
            <id>get-the-git-infos</id>
            <goals>
                <goal>revision</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
        <prefix>git</prefix>
        <verbose>false</verbose>
        <generateGitPropertiesFile>true</generateGitPropertiesFile>
        <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
        <format>properties</format>
        <gitDescribe>
            <skip>false</skip>
            <always>false</always>
            <dirty>-dirty</dirty>
        </gitDescribe>
    </configuration>
</plugin>
执行打包操作后,即可在target/classes目录下看到git.properties文件,类似于:
#Generated by Git-Commit-Id-Plugin
#Wed Jan 02 15:43:33 CST 2019
git.branch=master
git.build.host=gogodjzhucom.local
git.build.time=2019-01-02T15\:43\:33+0800
git.build.user.email=delzhu@outlook.com
git.build.user.name=delzhu@outlook.com
git.build.version=0.0.1-SNAPSHOT
git.closest.tag.commit.count=
git.closest.tag.name=
git.commit.id=7a577a9ac88a533ba6e0528b41a3fe52db20a6bd
git.commit.id.abbrev=7a577a9
git.commit.id.describe=7a577a9-dirty
git.commit.id.describe-short=7a577a9-dirty
git.commit.message.full=format
git.commit.message.short=format
git.commit.time=2019-01-02T15\:37\:45+0800
git.commit.user.email=delzhu@outlook.com
git.commit.user.name=delzhu@outlook.com
git.dirty=true
git.remote.origin.url=https\://github.com/spring-guides/gs-service-registration-and-discovery.git
git.tags=
git.total.commit.count=196

与Spring Boot Actuator整合

Actuator为Spring Boot提供了运行状态监控的功能,它支持自动读取git.properties文件并将其映射到API接口上。开启Actuator需要在pom.xml中添加对应的starter:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
然后访问/actuator/info即可看到git的版本信息:
{
  "git": {
    "commit": {
      "time": "2019-01-02T07:37:45Z",
      "id": "7a577a9"
    },
    "branch": "master"
  }
}
如果需要看到完整的git.properties中提供的信息,需要在application.properties中添加
management.info.git.mode=full

发表评论

电子邮件地址不会被公开。

5 × = 45