org.springframework.boot
spring-boot-starter-parent
2.1.3.RELEASE
spring boot父项目的PluginManagement中已经包含git-commit-id-plugin这个插件,这个插件的作用是在指定阶段(goal)读取git仓库信息并在对应目录生成git.properties文件。
pl.project13.maven
git-commit-id-plugin
revision
true
yyyy-MM-dd'T'HH:mm:ssZ
true
${project.build.outputDirectory}/git.properties
由于该插件是非强制继承的,我们需要在自己项目pom中显式地继承此插件,但不需要再做其他版本之类的配置。
org.springframework.boot
spring-boot-maven-plugin
pl.project13.maven
git-commit-id-plugin
该插件生成的git.properties文件内容如下:
git.build.user.email=xxx@xxx.com
git.build.host=xxx.local
git.dirty=true
git.remote.origin.url=git@xxxxxx
git.closest.tag.name=v3.17.0
git.commit.id.describe-short=v3.17.0-44-dirty
git.commit.user.email=xxx@xxx.com
git.commit.time=2019-04-08T10\:23\:34+0800
git.commit.message.full=xxx
git.build.version=3.16.2
git.commit.message.short=一次提交
git.commit.id.abbrev=3570d29
git.branch=master
git.build.user.name=king
git.closest.tag.commit.count=44
git.commit.id.describe=v3.17.0-44-g3570d29-dirty
git.commit.id=3570d291b18e8d10b833fbbe0c6cc1c32c771b24
git.tags=
git.build.time=2019-04-08T10\:30\:15+0800
git.commit.user.name=king
之前本人想自己使用这个插件把git.properties生成到resources目录下,然后通过@ConfigurationProperties和@PropertySource将配置文件映射为java对象,后来发现原来SpringBoot自己已经为我们提供了一个GitProperties类,并且已经在启动时生成并加入到容器管理中,我们只需使用即可。
通过Spring Boot Admin的Beans管理来观察下这个GitProperties。>如何搭建
在Spring Boot应用中,只需要通过注解注入就可以直接使用了。
@Autowired
private GitProperties git;
该类仅提供了4个属性如下,不过也够用了。
{
branch: "master",
commitId: "00df6fad7ef69954b35037c549c4b93956fda4e8",
shortCommitId: "00df6fa",
commitTime: "2019-04-09T03:04:24Z"
}