Spring Boot中使用Actuator的/info端点输出Git版本信息
发布时间 - 2026-01-11 01:38:39 点击率:次对于Spring Boot的Actuator模块相信大家已经不陌生了,尤其对于其中的/health、/metrics等强大端点已经不陌生(如您还不了解Actuator模块,建议先阅读《Spring Boot Actuator监控端点小结》)。但是,其中还有一个比较特殊的端点/info经常被大家所忽视,因为从最初的理解,它主要用来输出application.properties配置文件中通过info前缀来定义的一些属性,由于乍看之下可能想不到太多应用场景,只是被用来暴露一些应用的基本信息,而基本信息本身也可以在与Spring Cloud结合时作为服务治理的注册信息统一管理,所以这个端点的用处并不是很大。

然而实际上,该端点除了描述应用信息之外,也还可以用来描述Git版本信息,并且整合方法非常简单,下面我们就来看看如何使用/info端点暴露当前应用的Git版本信息。
POM配置
首先,我们可以挑选任意一个Spring Boot项目,修改它的pom.xml:
- 引入spring-boot-starter-actuator,提供/info端点
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
- 添加git-commit-id-plugin插件,该插件用来产生git的版本信息
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>2.1.15</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<configuration>
<dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
</configuration>
</plugin>
产生git版本信息
- 在完成了上面的配置之后,执行git-commit-id-plugin插件
运行完成后,我们可以在控台中看到类似下面的信息:
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - dotGitDirectory E:\git_project\oschina\SpringBoot-Learning\.git
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - git.build.user.name didi
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - git.build.user.email dyc87112@qq.com
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - git.branch master
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - --always = true
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - --dirty = -dirty
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - --abbrev = 7
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - Tag refs [ [Ref[refs/tags/chapter1=ec8713f61cd49569886708a08adea02c8ef0a112]] ]
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - Created map: [ {} ]
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - HEAD is [ e0540b3524378de9b5d938668a0f75ec016fa5e5 ]
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - Repo is in dirty state [ true ]
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - git.commit.id.describe e0540b3-dirty
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - git.commit.id e0540b3524378de9b5d938668a0f75ec016fa5e5
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - git.commit.id.abbrev e0540b3
[INFO] pl.project13.maven.git.log.MavenLoggerBridge - git.dirty true
...
同时,在target/classes目录下,我们可以发现产生了一个git.properties配置信息:
这个文件就是当前项目的git信息,它的内容如下:
#Generated by Git-Commit-Id-Plugin #Thu Jun 01 17:57:53 CST 2017 git.build.user.email=dyc87112@qq.com git.build.host=Lenovo-zhaiyc git.dirty=true git.remote.origin.url=https\://git.oschina.net/didispace/SpringBoot-Learning.git git.closest.tag.name=chapter1 git.commit.id.describe-short=e0540b3-dirty git.commit.user.email=dyc87112@qq.com git.commit.time=2017-06-01T17\:57\:10+0800 git.commit.message.full=update git.build.version=1.0.0 git.commit.message.short=update git.commit.id.abbrev=e0540b3 git.branch=master git.build.user.name=didi git.closest.tag.commit.count=240 git.commit.id.describe=e0540b3-dirty git.commit.id=e0540b3524378de9b5d938668a0f75ec016fa5e5 git.tags= git.build.time=2017-06-01T17\:57\:53+0800 git.commit.user.name=didi
启动测试
完成了上述配置之后,启动应用并访问端点,比如:curl localhost:8080/info,我们可以获得如下输出:
{
"git": {
"commit": {
"time": 1496311030000,
"id": "e0540b3"
},
"branch": "master"
}
}
其中包含了关于branch和commit的基础信息。而这个信息格式是最简模式,我们也可以通过配置下面的参数来获取更全面的git信息:
management.info.git.mode=full
重启应用后再访问/info端点,可以获得类似下面更为详细的版本信息了。
{
"git": {
"build": {
"host": "Lenovo-zhaiyc",
"version": "1.0.0",
"time": 1496311073000,
"user": {
"name": "didi",
"email": "dyc87112@qq.com"
}
},
"branch": "master",
"commit": {
"message": {
"short": "update",
"full": "update"
},
"id": "e0540b3524378de9b5d938668a0f75ec016fa5e5",
"id.describe-short": "e0540b3-dirty",
"id.abbrev": "e0540b3",
"id.describe": "e0540b3-dirty",
"time": 1496311030000,
"user": {
"email": "dyc87112@qq.com",
"name": "didi"
}
},
"closest": {
"tag": {
"name": "chapter1",
"commit": {
"count": "240"
}
}
},
"dirty": "true",
"remote": {
"origin": {
"url": "https://git.oschina.net/didispace/SpringBoot-Learning.git"
}
},
"tags": ""
}
}
代码示例:Chapter6-2-1
Github:https://github.com/dyc87112
码云:http://git.oschina.net/didispace/SpringBoot-Learning
以上所述是小编给大家介绍的Spring Boot中使用Actuator的/info端点输出Git版本信息,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# spring
# boot
# 输出git版本信息
# springboot使用Logback把日志输出到控制台或输出到文件
# Springboot如何使用Map将错误提示输出到页面
# Springboot使用@Valid 和AOP做参数校验及日志输出问题
# Spring Boot异步输出Logback日志方法详解
# SpringBoot通过yml和xml文件配置日志输出方法
# spring boot实现自动输出word文档功能的实例代码
# 我们可以
# 可以获得
# 小编
# 完成了
# 太多
# 在此
# 还不
# 可以通过
# 给大家
# 还有一个
# 就来
# 在与
# 重启
# 如您
# 所述
# 如何使用
# 给我留言
# 也还
# 配置文件
# 感谢大家
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
济南网站建设制作公司,室内设计网站一般都有哪些功能?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
简历在线制作网站免费版,如何创建个人简历?
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
JavaScript如何实现路由_前端路由原理是什么
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
如何在企业微信快速生成手机电脑官网?
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
,网页ppt怎么弄成自己的ppt?
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
大学网站设计制作软件有哪些,如何将网站制作成自己app?
Laravel如何使用.env文件管理环境变量?(最佳实践)
如何在阿里云ECS服务器部署织梦CMS网站?
Python文件异常处理策略_健壮性说明【指导】
香港服务器选型指南:免备案配置与高效建站方案解析
JavaScript常见的五种数组去重的方式
如何用PHP工具快速搭建高效网站?
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
如何在建站之星绑定自定义域名?
jQuery 常见小例汇总
焦点电影公司作品,电影焦点结局是什么?
青岛网站建设如何选择本地服务器?
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
如何在Windows虚拟主机上快速搭建网站?
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
网站制作企业,网站的banner和导航栏是指什么?
Android Socket接口实现即时通讯实例代码
,交易猫的商品怎么发布到网站上去?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
常州企业网站制作公司,全国继续教育网怎么登录?
网易LOFTER官网链接 老福特网页版登录地址
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
如何在万网利用已有域名快速建站?
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
Laravel如何处理和验证JSON类型的数据库字段

