栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Maven 不同环境引用不同的依赖和配置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Maven 不同环境引用不同的依赖和配置

在项目开发中可能会产生这样的需求,开发环境依赖于 A 包,测试环境依赖 B 包,生产环境依赖于 C 包。按照我们传统的思维会每个环境注释掉相应的包,然后再打包,一次两次操作还好,操作多了之后这样会很麻烦。

Maven 不同环境引用依赖 Maven 配置

    
    
        dev
        
        
            true
        
        
            dev
        
        
            
            
                com.allens.test
                allens-redis
                1.0-SNAPSHOT
            

            
                org.springframework.boot
                spring-boot-devtools
            
        
    

    
    
        prod
        
            prod
        
        
            
            
                com.allens.test
                allens-redis
                2.0-SNAPSHOT
            
        
    

切换不同环境


我们可以在idea的Maven窗口中选中需要的profile环境,然后在lifecircle 中 clean install即可。
当然我们也可以使用maven 命令进行打包指定不同环境

## 开发环境打包
mvn clean package -P dev
 
## 测试环境打包
mvn clean package -P test
 
## 生产环境打包
mvn clean package -P pr
最佳实践

① Springboot 热部署插件,在开发环境需要,在测试环境、预发环境、生产环境都是不需要的。
② OceanBase 不同版本适配的不同的操作系统,我们可以借助profile配置不同环境下配置不同的包来做到不同环境切换依赖。

Maven不同环境打包不同配置

和传统的部署方式不同,我们将配置文件放入到不同的目录,使用build>resource来在编译的时候,通过读取不同环境的profiles.active属性来获取不同环境目录下的配置打包到classpath目录中。

  • 传统的配置方式


传统配置方式会将配置文件放到resources底下,然后给配置文件命名 application-${env}.yml来区分不同环境。在JVM参数中指定-Dspring.active.profiles=${env}或者在idea中:

或者在 bootstrap.yml 或者application.yml中指定默认的配置:

spring:
  profiles:
    active: ${env}

所有环境的配置都会打包到jar包中。

  • maven通过编译打包确定环境配置

只有需要的环境配置才会打包到jar包中

maven 配置

    
    
        dev
        
        
            true
        
        
            dev
            1.0.0-SNAPSHOT
        
        
            
            
                com.allens.test
                common-utils
                1.0-SNAPSHOT
            

            
                org.springframework.boot
                spring-boot-devtools
            
        
    

    
    
        prod
        
            prod
        
        
            
            
                com.allens.test
                common-utils
                1.0-SNAPSHOT
            
        
    



    
    
        
        
            src/main/resources
        
        
        
            src/main/config/${profiles.active}
            ./
        
    

编译后的目录结构

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1032036.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号