当前位置: 首页 > 科技观察

使用SpringBoot中Actuator的-info端点输出Git版本信息

时间:2023-03-15 01:04:11 科技观察

相信大家对SpringBoot中的Actuator模块并不陌生,尤其是/health、/metrics等强大的端点。但是,还有一个特殊的端点/info却常常被大家所忽视,因为从最初的理解来看,它主要是用来输出application.properties配置文件中info前缀定义的一些属性。想不到太多的应用场景,只是用来暴露应用的一些基本信息,而这些基本信息本身结合SpringCloud也可以作为服务治理的注册信息进行管理,所以这个端点不是很有用。不过,其实这个端点除了描述应用信息外,还可以用来描述Git版本信息,集成方式也很简单。让我们看看如何使用/info端点来暴露当前应用程序的Git版本信息。POM配置首先,我们可以选择任何SpringBoot项目并修改其pom.xml。引入spring-boot-starter-actuator,提供/info端点:org.springframework.bootspring-boot-starter-actuator添加git-commit-id-plugin插件,用于生成git版本信息:pl.project13.mavengit-commit-id-plugin2.1.15修订版${project.basedir}/.git生成git版本信息完成以上配置后,执行git-commit-id-plugin插件。运行后,我们可以在控制台看到类似如下的信息:[INFO]pl.project13.maven.git.log.MavenLoggerBridge-dotGitDirectoryE:\git_project\oschina\SpringBoot-Learning\.git[INFO]pl.project13。maven.git.log.MavenLoggerBridge-git.build.user.namedidi[信息]pl.project13.maven.git.log.MavenLoggerBridge-git.build.user.emaildyc87112@qq.com[信息]pl.project13.maven.git.log.MavenLoggerBridge-git.branchmaster[INFO]pl.project13.maven.git.log.MavenLoggerBridge---always=true[INFO]pl.project13.maven.git.log.MavenLoggerBridge---dirty=-脏[信息]pl.project13.maven.git.log.MavenLoggerBridge---abbrev=7[信息]pl.project13.maven.git.log.MavenLoggerBridge-Tagrefs[[Ref[refs/tags/chapter1=ec8713f61cd49569886708a08adea02c8ef0a112]]][信息]pl.project13.maven.git.log.MavenLoggerBridge-Createdmap:[{}][信息]pl.project13.maven.git.log.MavenLoggerBridge-HEADis[e0540b3524378de9b5d938668a0f75ec016fa5e5][信息]pl.project13.maven。git.log.MavenLoggerBridge-Repoisindirtystate[true][INFO]pl.project13.maven.git.log.MavenLoggerBridge-git.commit.id.describee0540b3-dirty[信息]pl.project13.maven.git.log.MavenLoggerBridge-git.commit.ide0540b3524378de9b5d938668a0f75ec016fa5e5[信息]pl.project13.maven.git.log.MavenLoggerBridge-git.commit。id.abbreve0540b3[INFO]pl.project13.maven.git.log.MavenLoggerBridge-git.dirtytrue...同时在target/classes目录下,我们可以发现生成了一个git.properties的配置信息这个文件是当前项目的git信息,内容如下:#GeneratedbyGit-Commit-Id-Plugin#ThuJun0117:57:53CST2017git.build.user.email=dyc87112@qq.comgit.build.host=Lenovo-zhaiycgit.dirty=truegit.remote.origin.url=https\://git.oschina.net/didispace/SpringBoot-Learning.gitgit.closest.tag.name=chapter1git.commit.id.describe-short=e0540b3-脏git.commit。user.email=dyc87112@qq.comgit.commit.time=2017-06-01T17\:57\:10+0800git.commit.message.full=updategit.build.version=1.0.0git.commit.message.short=updategit.commit.id.abbrev=e0540b3git.branch=mastergit.build.user.name=didigit.closest.tag.commit.count=240git.commit.id.describe=e0540b3-dirtygit.commit.id=e0540b3524378de9b5d938668a0f75ec016fages5e5=gitgit.build.time=2017-06-01T17\:57\:53+0800git.commit.user.name=didistartuptest完成以上配置后,启动应用,访问端点,例如:curllocalhost:8080/info,我们可以得到如下输出:{"git":{"commit":{"time":1496311030000,"id":"e0540b3"},"branch":"master"}}里面包含了branc的信息h和commit的基本信息,这种信息格式是最简单的模式。我们还可以通过配置以下参数来获取更全面的git信息:management.info.git.mode=full重启应用,然后访问/info端点,就可以获取如下更详细的版本信息。{"git":{"build":{"host":"Lenovo-zhaiyc","version":"1.0.0","time":1496311073000,"user":{"name":"滴滴","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":"滴滴"}},"closest":{"tag":{"name":"chapter1","commit":{"count":"240"}}},"dirty":"true","re??mote":{"origin":{"url":"https://git.oschina.net/didispace/SpringBoot-Learning.git"}},"tags":""}}【本文为专栏作家“翟永超”原创稿件,转载请联系作者获得授权】点此阅读作者更多好文