Spring boot 项目分环境 Maven 打包,动态配置文件,动态配置项目

Spring boot Maven 项目打包

使用Maven 实现多环境 test dev prod 打包

项目的结构

在下图中可用看出,我们打包时各个环境需要分开,采用 application-环境.yml 的方式命名

Spring boot 项目分环境 Maven 打包,动态配置文件,动态配置项目_第1张图片

环境配置开始

首先我们需要在application.yml文件中配置 spring.profiles.active = @profileActive@这里的proofileAction 是我们下面要用到的变量

spring:
    profiles:
        active:  @profileActive@
        include: swagger
    devtools:
        restart:
            enabled: true
        livereload:
            enabled: true # we use gulp + BrowserSync for livereload
    jackson:

pom.xml

我们需要在pom中指定finalname的名称,当然对于打包来说名称并不影响。
实际上 不配置 resources节点也是可以的,在pom添加只是为了在打包中少几个配置文件。
当然你可以通过include来选择需要导入哪个文件。

 
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
        
        ${project.artifactId}-${profileActive}-${project.version}
        
            
                src/main/resources
                
                true
                
                    
                    application.yml
                    application-${profileActive}.yml
                
            
        
    

    
    
        
            dev
            
                dev
            
            
                
                true
            
        
        
        
            test
            
                test
            
        
        
        
            prod
            
                prod
            
        
    

在pom中profiles节点才是分项目打包的关键,通过profile节点可以在打包时动态的去更新我们在application.xml中的配置值

Spring boot 项目分环境 Maven 打包,动态配置文件,动态配置项目_第2张图片

在编译项目时,可以使用 -P 参数指定需要使用的 profile 的 id,比如下面命令将会使用 dev profile:

mvn clean package -P dev

如果想使用test,只需要改为以下即可

mvn clean package -Ptest

假如不指定 -P 参数的话,则会使用 activeByDefault=true 的一项(即 dev)。

参考文档:

LuckyZhouStar Maven中profile和filtering实现多个环境下的属性过滤

你可能感兴趣的:(Maven)