Maven插件获取Git信息

很多时候虽然用了 Git 做了源代码的版本管理,但一般上线的版本都没会的Tag。最近线上项目出现了一个BUG,因为已经找不到线上代码对应的版本了,只好通过打包时间去找对应的版本然后修复BUG。如果要是每次打包都能把当前对应的版本信息放到 war/jar 包中就完美了,于是各种百度Maven 获取 Git 版本信息,终于找到了我想要的:

maven:读取程序版本号的三种方案
亲测可行,但你需要在pom.xml文件中加入scm配置信息:

<scm>
    <connection>scm:git:git@gitee.com:gggg/test.git</connection>
</scm>

这个方案感觉还是不够完美;然后我在SpringBoot的pom.xml看到了下面这个配置(1.5.1.RELEASE版本的SpringBoot):

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

git-commit-id-plugin 这个插件就可以帮助我们获取Git相关信息,SpringBoot已经帮我们配置好了,我们需要在自己项目pom.xml中引入一下就ok了。

<plugins>
  <plugin>
    <groupId>pl.project13.maven</groupId>
    <artifactId>git-commit-id-plugin</artifactId>
  </plugin>
</plugins>

然后通过Maven打包,就能看到classes目录下生成了一个git.properties文件;
git.properties
git.properties文件内容

然后我们可以通过 SpringBoot Actuator获取Git相关信息。我们先引入Actuator依赖:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

然后需在application.yml文件中把访问限制关闭,不然是无法方法Actuator端点的。

management.security.enabled: false

最后我们启动服务,通过 /info 端点即可获取如下信息:
Git信息
如果你想要查看更详细的信息可以在application.yml文件中加入以下配置:

management.info.git.mode: full

再次访问 /info 端点即可获取更加详细的信息:
详细的Git信息

因为SpringBoot集成了git-commit-id-plugin 插件,所以我们使用起来更加方便,但从这个插件的名字就可以看出它只支持Git,如果你们使用的是SVN就没办法用这个方式,只好用这个方案了maven:读取程序版本号的三种方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值