Spring Boot项目获取Git版本信息

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.1.3.RELEASE</version>
	<relativePath /> <!-- lookup parent from repository -->
</parent>

spring boot父项目的PluginManagement中已经包含git-commit-id-plugin这个插件,这个插件的作用是在指定阶段(goal)读取git仓库信息并在对应目录生成git.properties文件。

               <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>

由于该插件是非强制继承的,我们需要在自己项目pom中显式地继承此插件,但不需要再做其他版本之类的配置。

    <build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>pl.project13.maven</groupId>
				<artifactId>git-commit-id-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

该插件生成的git.properties文件内容如下:

[email protected]
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
[email protected]
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"
}

猜你喜欢

转载自blog.csdn.net/t5721654/article/details/89149151