springboot获取项目git版本信息的几种方式

第一种方式,使用GitProperties类

      首先,pom.xml作如下的配置

<!-- git版本信息 -->
<plugin>
   <groupId>pl.project13.maven</groupId>
   <artifactId>git-commit-id-plugin</artifactId>
   <executions>
      <execution>
         <goals>
            <goal>revision</goal>
         </goals>
      </execution>
   </executions>
   <configuration>
      <verbose>true</verbose>
      <dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
      <generateGitPropertiesFile>true</generateGitPropertiesFile>
      <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
   </configuration>
</plugin>

      springboot为我们提供了一个类GitProperties,可以使用这个类来获取项目的版本信息,使用的时候可以自动注入就可以使用了,GitProperties已经自动提供了4个方法来获取版本信息,但是有的小伙伴可能需要输出更多的版本信息就觉得这个类不适用,仔细想想,springboot不会给我们提供一个很鸡肋的类来供我们使用的,想要更多的信息,当然可以,先看下面的代码:

@RestController
public class TestProperties {
    @Autowired
    private GitProperties git;

    @RequestMapping("/getVersion")
    public JSONObject adad(){
        JSONObject jsonObject = new  JSONObject();
        //默认提供的四个版本信息
        String branch = git.getBranch();
        String commitId = git.getCommitId();
        Instant commitTime = git.getCommitTime();
        String shortCommitId = git.getShortCommitId();
        //可以自己根据需要查询额外的版本信息
        String email = git.get("build.user.email");
        jsonObject.put("branch",branch);
        jsonObject.put("commitId",commitId);
        jsonObject.put("commitTime",commitTime);
        jsonObject.put("shortCommitId",shortCommitId);
        jsonObject.put("email",email);
        return jsonObject;
    }
}

上面的代码请求后输出结果是:

看,是不是可以获得你想要的Git版本信息,原因是什么?这个我们要进入到GitProperties类去看,进入后是下面这样

你会发现,GitProperties继承了父类InfoProperties,而实际上GitProperties为我们提供好的四个git版本信息实际上是调用了父类的get(String key)方法,所以你当然也可以获取除了GitProperties类给你提供好的四个git版本信息之外的版本信息了。

第二种方式,通过监控actuator

springboot的actuator模块为我们提供了监控所需要的很多的接口,使用时先要在pom.xml中一如下面的依赖:

<!-- 通过 SpringBoot Actuator获取Git相关信息 -->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

然后在application.yml获取application.properties文件中写入相关的配置,这里只提供application.yml的配置

management:
  endpoints:
    web:
      base-path: /  #Spring Boot 2.0的端点基础路径由“/”调整到”/actuator”下,如:/info调整为/actuator/info,可以通过以下配置改为和旧版本一致
  info:
    git:
      mode: simple  #项目git版本信息展示 full 展示信息多 simple 展示信息少

下面定义了一些输出信息,

info:
  app:
   version: project_version_1.0 #自定义一些信息,指定的系统版本
   encoding: '@project.build.sourceEncoding@'  #获取pom.xml里的信息
   java:
     source: '@java.version@'
     target: '@java.version@'

注意:info下的配置可以自定义一些内容也可以通过@java.version@的方式获取pom.xml内的信息。

总结,上面两种在开发中都可以使用,各位可以根据喜好选择其中一种即可

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值