Sring-Boot

Spring Boot 使用 git-commit-id-maven-plugin 打包应用

原文地址:https://www.cnblogs.com/Naylor/p/18024689 简介 git-commit-id-maven-plugin 是一个maven 插件,用来在打包的时候将 git-commit 信息打进 Jar 中。 这样做的好处是可以将发布的某版本和对应的代码关联起来,方便查阅和线上项目的维护。至于它的作用,用官方说法,这个功能对于大型分布式项目来说是无价的。 功能 你是否经常遇到这样的问题: 测试提交了一个bug,开发人员无法确认是哪个版本有这个问题?当前测试环境部署的是某个版本吗?生产环境会不会也有这个问题? 公司内部的项目,总共几十、几百个服务,每天都有服务的生产环境部署,一个服务甚至一天上线好几次,对于项目管理来说无法清晰了解某一时刻某个服务的版本 如何验证我的代码是否已经上线? 。。。。。。 以上种种,都有一个共同的诉求,就是我希望在打包的时候将最后一次 git commit id 和当前 jar 关联起来并可试试查询 jar 对应的 git commit id 。 实践 引入插件 本例 Spring Boot 版本为 2.7.6,java 版本为 11 此插件已经上传到中央仓库(https://central.sonatype.com/artifact/io.github.git-commit-id/git-commit-id-maven-plugin?smo=true) 在项目pom.xml 中引入如下插件 <project> ...... <build> <plugins> <!-- git-commit-id-maven-plugin :打包的时候携带git提交信息 --> <plugin> <groupId>io.github.git-commit-id</groupId> <artifactId>git-commit-id-maven-plugin</artifactId> <version>5.0.0</version> <executions> <execution> <id>get-the-git-infos</id> <goals> <goal>revision</goal> </goals> <phase>initialize</phase> </execution> </executions> <configuration> <generateGitPropertiesFile>true</generateGitPropertiesFile> <generateGitPropertiesFilename>${project.build.outputDirectory}/git.</generateGitPropertiesFilename> <includeOnlyProperties> <includeOnlyProperty>^git.build.(time|version)$</includeOnlyProperty> <includeOnlyProperty>^git.commit.id.(abbrev|full)$</includeOnlyProperty> </includeOnlyProperties> <format>txt</format> <commitIdGenerationMode>full</commitIdGenerationMode> </configuration> </plugin> </plugins> </build> </project> generateGitPropertiesFilename:用于指定生成的 gitCommitInfo 存放到哪个位置,后缀可以任意指定,如果不指定将使用 format 的值 format:指定文件后缀,一般为 properties、json commitIdGenerationMode:记录完整信息,若 format 为 json,此值必须为 full 此外为了能成功打出 jar 包,还需要如下插件的配合: