SpringBoot读取pom.xml中的version变量

一、背景需求

基于Maven的SpringBoot微服务发布后,在后端管理页面,管理员希望看到各服务模块的当前版本号,因此在需要在Java代码中读取到pom.xml中的version版本信息,通过API接口向管理页面提供版本数据。

二、实现方案

1、maven构建时,将pom.xml中的变量,写入到SpringBoot的yml配置文件中。

bootstrap.yml中,添加从pom.xml文件中读取变量的配置:

spring:
  application:
    # @变量名@ 读取pom.xml中的值
    version: @project.version@

pom.xml中添加resource资源文件过滤,在编译构建的时候,将yml中引用pom.xml的变量,替换成真实的值。


    
    1.8.0-SNAPSHOT

            
        
            
                src/main/resources
                
                    
                    **/*.yml
                
                
                true
            
        
    

编译构建后,bootstrap.yml真实内容(注意version变成了真实值):

spring:
  application:
    # @变量名@ 读取pom.xml中的值
    version: 1.8.0-SNAPSHOT

2、在Java代码中注入SpringBoot变量。

@Component
public class PomConfigTest{
    private static final Logger log = LoggerFactory.getLogger(PomConfigTest.class);
    
    @Value("${spring.application.version}")
    private String applicationVersion;

    public PomConfigTest() {
        log.info("当前版本 applicationVersion: {}", applicationVersion);
    }
}

你可能感兴趣的:([拓维]云架构,开发笔记,Java基础,spring,boot,xml,java)