Maven 多环境打包

Method-1:使用Maven Profile

(1) 在项目 pom.xml 文件中,设置profiles

      dev          profile-dev      password-dev              true            qa          profile-qa      password-qa            release          profile-prod      password-prod

# activation 元素此处只配置了一个默认激活,还有其他可配置条件参数,如根据 JDK 版本、操作系统、某个文件是否存在等进行配置激活


(2) 配置 resources 过滤

        src/main/resources     true

# resource 元素还有其他可配置内容,可自行查找


(3) 文件中使用占位符

如对 src/main/resources 目录下的 jdbc.properties 文件修改

db.user=${db.user}

db.password=${db.password}


(4) 激活 profile

除了 activation 元素配置的条件之外,可以在打包时使用 -P 参数激活指定的 profile

mvn clean package -P dev

# 不指定则根据 activation 元素的配置进行 profile 的激活

激活打包后,打开 jdbc.properties 文件,会看到占位符内容变为了 profiles 中的配置内容

db.user=profile-dev

db.password=password-dev


Method-2:Maven Profile 结合 Spring Profile

(1) 配置 Spring Pofile

在 Spring 的 XML 配置文件中 或 在 Java 代码中使用 Spring 的相关注释(Annotation)配置

      
          
              
              
              
              
          
          
              
                  
                    classpath:messages_zh_CN  
                    classpath:messages/messages_en_US-xmj_old  
                  
              
          
      
      
          
              
              
              
              
          
          
              
                  
                    classpath:messages_zh_CN  
                    classpath:messages/messages_en_US-xmj_new


(2) web.xml 中激活 Spring Profile

    spring.profiles.active    dev


(3) 整合 Maven Profile

(3.1) 配置 Maven Profile

...



(3.2) 修改 web.xml

在 web.xml 中,修改 spring.profiles.active 参数值为占位符格式 ${profiles.activation} 获取 Maven Profiles 的配置参数值。

    spring.profiles.active    ${profiles.activation}

这样,在使用 Maven 打包时,指定 profiles.activation 的参数值,就可以同步应用 Spring Profiles 的对应配置了。