很多时候虽然用了 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文件;
 
 
然后我们可以通过 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 端点即可获取如下信息:
 
 如果你想要查看更详细的信息可以在application.yml文件中加入以下配置:
management.info.git.mode: full
再次访问 /info 端点即可获取更加详细的信息:
 
因为SpringBoot集成了git-commit-id-plugin 插件,所以我们使用起来更加方便,但从这个插件的名字就可以看出它只支持Git,如果你们使用的是SVN就没办法用这个方式,只好用这个方案了maven:读取程序版本号的三种方案。
 
                   
                   
                   
                   
                             博客讲述线上项目因找不到对应版本修复 BUG 的问题,介绍了通过 Maven 获取 Git 版本信息的方法。包括在 pom.xml 中加入 scm 配置,利用 SpringBoot 集成的 git-commit-id-plugin 插件,通过 Maven 打包生成 git.properties 文件,还说明了通过 SpringBoot Actuator 获取信息的步骤。
博客讲述线上项目因找不到对应版本修复 BUG 的问题,介绍了通过 Maven 获取 Git 版本信息的方法。包括在 pom.xml 中加入 scm 配置,利用 SpringBoot 集成的 git-commit-id-plugin 插件,通过 Maven 打包生成 git.properties 文件,还说明了通过 SpringBoot Actuator 获取信息的步骤。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   1768
					1768
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            