参考:

https://blog.51cto.com/u_15891990/5908709

https://gitee.com/moxi159753/LearningNotes/blob/master/SpringBoot/Eureka%E7%AE%A1%E7%90%86%E9%A1%B5%E9%9D%A2%E9%85%8D%E7%BD%AE%E6%8E%A5%E5%8F%A3%E8%BF%94%E5%9B%9Egit%E4%BF%A1%E6%81%AF/README.md

https://blog.csdn.net/qq_53445252/article/details/127807735

前言

这阵子在弄监控页面,我点击eureka里面的地址

image-20200107213729955

发现进去的页面没有 任何内容显示,后面想想可能是没有什么东西没有配置而引起的

通过查阅资料发现,微服务若是用git管理,当前微服务部署的git的版本信息是不可或缺的信息,spring boot admin中通过/actuator/info接口返回git基本信息。该接口若要返回git信息,首先需要引入Actuator依赖

<!-- 使用Actuator的/info端点输出Git版本 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

同时需要添加git-commit-id-plugin插件

              <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>
                        <!-- 默认绑定阶段initialize -->
                        <phase>initialize</phase>
                        <goals>
                            <!-- 目标:revision -->
                            <goal>revision</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!-- 定义插件中所有时间格式,默认值:yyyy-MM-dd’T’HH:mm:ssZ -->
                    <dateFormat>yyyy-MM-dd HH:mm:ss</dateFormat>
                    <!-- 生成git属性文件,默认false:不生成 -->
                    <generateGitPropertiesFile>true</generateGitPropertiesFile>
                    <!-- 生成git属性文件路径及文件名,默认${project.build.outputDirectory}/git.properties -->
                    <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
                    <!-- 生成git属性文件格式,默认值properties -->
                <!--    <format>json</format>  -->
                    <!-- git.properties包含的内容-->
                    <includeOnlyProperties>
                        <!--  所在分支                      -->
                        <includeOnlyProperty>^git.branch$</includeOnlyProperty>
                        <includeOnlyProperty>^git.build.time$</includeOnlyProperty>
                        <includeOnlyProperty>^git.commit.time$</includeOnlyProperty>
                        <!--  commit-id  -->
                        <includeOnlyProperty>^git.commit.id.full$</includeOnlyProperty>
                        <includeOnlyProperty>^git.build.version$</includeOnlyProperty>
                        <!-- 所属分分支名 -->
                        <includeOnlyProperty>^git.closest.tag.name$</includeOnlyProperty>
                    </includeOnlyProperties>
                </configuration>
            </plugin>

注意,这里不要转成json,不然Actuator解析不了。

添加完成后,我们查看IDEA的Maven,能够发现多出了一个 git-commit-id:revision

image-20200107214012195

我们点击后,在target/classes目录下,我们可以发现产生了一个git.properties配置信息,或者进行mvn clean package打包,也会出现配置信息:

image-20200107214404474

里面的内容就是当前项目的git信息:

#Generated by Git-Commit-Id-Plugin
#Tue Jan 07 21:25:46 CST 2020
git.build.user.email=xzx19950624@qq.com
git.build.host=DESKTOP-DIA5I1I
git.dirty=true
git.remote.origin.url=https\://github.com/moxi624/mogu_blog_v2.git
git.closest.tag.name=
git.commit.id.describe-short=6f1ef9e-dirty
git.commit.user.email=xzx19950624@qq.com
git.commit.time=2020-01-07T19\:58\:26+0800
git.commit.message.full=update banner
git.build.version=0.0.1-SNAPSHOT
git.commit.message.short=update banner
git.commit.id.abbrev=6f1ef9e
git.branch=dev
git.build.user.name=陌溪_
git.closest.tag.commit.count=
git.commit.id.describe=6f1ef9e-dirty
git.commit.id=6f1ef9e48bbd0f3cb825b7934152dde21d821456
git.tags=
git.build.time=2020-01-07T21\:25\:46+0800
git.commit.user.name=陌溪_

然后启动eureka页面,在点击刚刚的a标签,发现能够成功获取到git信息了

image-20200107214142962

如果没有,可能要配置application.yaml:

management:
  info:
    git:
      mode: full

  endpoints:
    web:
      exposure:
        include: "*"
  server:
    port: 7001