信步漫谈之Maven——多环境部署切换配置


目录
  • 1 目标
  • 2 程序结构
  • 3 Maven 的 POM 脚本
  • 4 打包结构
  • 5 环境切换


1 目标

打包时根据指定的环境切换所使用的项目配置文件。

2 程序结构

  • 项目结构
com.alfred.maven.multienvswitch-webapp
  ∟ config
      ∟ local
          ∟ config.properties
      ∟ dev
          ∟ config.properties
      ∟ release
          ∟ config.properties
  ∟ src
      ∟ main
          ∟ webapp
              ∟ WEB-INF
                  ∟ config
                      ∟ config.properties
                  ∟ web.xml
          ∟ index.jsp
  ∟ pom.xml

3 Maven 的 POM 脚本

<?xml version="1.0" encoding="UTF-8"?>


    4.0.0
    com.alfred.maven
    maven-multienv-switch-webapp
    1.0.0-SNAPSHOT
    war
    
        概述:【Maven技术研究】多环境切换配置
        目标:打包时根据指定的环境切换所使用的项目配置文件
        多环境目录说明:
        1)local:本地环境配置,用于本地运行开发
        2)dev:开发环境配置,用于内部测试打包
        3)release:发布环境配置,用于发布版本打包
    

    
        UTF-8
        1.8
        1.8
    

    
        
            local
            
                
                true
            
            
                local
                
            
        
        
            dev
            
                dev
                
                _dev
            
        
        
            release
            
                release
                
            
        
    

    
        
            
                org.apache.maven.plugins
                maven-clean-plugin
                3.0.0
                
                    
                        auto-clean
                        initialize
                        
                            clean
                        
                    
                
            
            
                org.apache.maven.plugins
                maven-war-plugin
                2.4
                
                    ${project.build.directory}/${project.artifactId}
                    MultiEnvSwitch${package.suffix}
                    true
                    
                        
                            config/${package.env}
                            true
                            WEB-INF/config
                        
                    
                
            
        
    



4 打包结构

MultiEnvSwitch.war
  ∟ META-INF
  ∟ WEB-INF
      ∟ classes
      ∟ config
          ∟ config.properties
      ∟ web.xml
  ∟ index.jsp

5 环境切换

根据不同的maven打包指令可切换不同的配置文件进行打包,带上 maven 参数 -P 加指定 profile 的id 即可。

打包开发环境命令:mvn package -Pdev
打包发布环境命令:mvn package -Prelease