Maven POM文件中git-ref与git-ref-short标签的工作原理及取值来源
关于spring-boot-maven-plugin中git-ref相关配置的解析
1. git-ref标签的工作机制
首先要明确:git-ref和git-ref-short是你自定义的属性名,并非Spring Boot Maven插件自带的固定标签。
spring-boot-maven-plugin的build-info目标核心作用是生成META-INF/build-info.properties文件,里面默认包含项目版本、构建时间、Spring Boot版本等基础构建信息。而additionalProperties配置项的作用,就是允许你往这个文件里添加自定义的键值对——你配置的<git-ref>和<git-ref-short>就是自定义的键,对应的值会被写入最终的build-info.properties中。
之后你可以在Spring Boot应用内通过@Value("${build.git-ref}")或者Environment对象,读取这些自定义的Git提交ID信息。
2. 取值来源
${git.commit.id.full}和${git.commit.id.abbrev}这两个Maven属性,是由你配置的git-commit-id-plugin提供的:
- 该插件在Maven构建阶段会自动读取当前项目所在Git仓库的提交记录,提取出完整的提交哈希值(对应
git.commit.id.full)和缩短后的提交哈希值(对应git.commit.id.abbrev)。 - 插件会把这些属性注入到Maven的上下文环境中,这样spring-boot-maven-plugin在执行
build-info目标时,就能直接引用这些属性值,赋值给你自定义的git-ref和git-ref-short。
另外git-commit-id-plugin自身还会生成git.properties文件,里面也包含这些Git提交信息,相当于同一套数据被两个插件分别以不同文件形式输出。
3. 相关官方文档
- Spring Boot Maven插件:官方文档中关于
build-info目标的章节,明确说明了additionalProperties配置项的用途——允许扩展构建信息,添加自定义键值对到build-info.properties中。 - git-commit-id-plugin:其官方文档详细介绍了插件如何读取Git仓库信息、生成
git.commit.id.full等属性的逻辑,以及如何配置插件生成git.properties文件。
内容的提问来源于stack exchange,提问作者Moazzam
相关产品推荐
相关产品推荐

