服务好 售后好的网站制作,四大门户网站现状,安徽建设工程信息网查询平台蔡庆树,赤峰建设淘宝网站对于Spring Boot的Actuator模块相信大家已经不陌生了#xff0c;尤其对于其中的/health、/metrics等强大端点已经不陌生#xff08;如您还不了解Actuator模块#xff0c;建议先阅读《Spring Boot Actuator监控端点小结》#xff09;。但是#xff0c;其中还有一个比较特殊…对于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 groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-actuator/artifactId/dependency添加git-commit-id-plugin插件该插件用来产生git的版本信息
plugin groupIdpl.project13.maven/groupId artifactIdgit-commit-id-plugin/artifactId version2.1.15/version executions execution goals goalrevision/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 dyc87112qq.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/chapter1ec8713f61cd49569886708a08adea02c8ef0a112]] ][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 2017git.build.user.emaildyc87112qq.comgit.build.hostLenovo-zhaiycgit.dirtytruegit.remote.origin.urlhttps\://git.oschina.net/didispace/SpringBoot-Learning.gitgit.closest.tag.namechapter1git.commit.id.describe-shorte0540b3-dirtygit.commit.user.emaildyc87112qq.comgit.commit.time2017-06-01T17\:57\:100800git.commit.message.fullupdategit.build.version1.0.0git.commit.message.shortupdategit.commit.id.abbreve0540b3git.branchmastergit.build.user.namedidigit.closest.tag.commit.count240git.commit.id.describee0540b3-dirtygit.commit.ide0540b3524378de9b5d938668a0f75ec016fa5e5git.tagsgit.build.time2017-06-01T17\:57\:530800git.commit.user.namedidi启动测试
完成了上述配置之后启动应用并访问端点比如curl localhost:8080/info我们可以获得如下输出
{ git: { commit: { time: 1496311030000, id: e0540b3 }, branch: master }}其中包含了关于branch和commit的基础信息。而这个信息格式是最简模式我们也可以通过配置下面的参数来获取更全面的git信息
management.info.git.modefull重启应用后再访问/info端点可以获得类似下面更为详细的版本信息了。
{ git: { build: { host: Lenovo-zhaiyc, version: 1.0.0, time: 1496311073000, user: { name: didi, email: dyc87112qq.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: dyc87112qq.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目录
Githubhttps://github.com/dyc87112/SpringBoot-LearningGiteehttps://gitee.com/didispace/SpringBoot-Learning相关阅读
Spring Boot Actuator监控端点小结在传统Spring应用中使用spring-boot-actuator模块提供监控端点使用Spring Boot Actuator、Jolokia和Grafana实现准实时监控