配置Maven环境隔离

Maven的环境隔离

 

一、前言

在Maven项目开发中,一般都会有四种环境情形: 
1. 本地环境(Local) 
2. 开发环境(Dev) 
3. 测试环境(Beta) 
4. 发布环境(Prod) 
在不同环境中,总会遇到FTP服务器配置不一样,数据库配置不一样等一系列问题,这样Maven的环境隔离将有助于我们轻松切换不同配置环境。

二、maven环境隔离解决的实际问题

  1. 避免人工修改的弊端,即容易犯错
  2. 避免分环境打包、编译、部署

三、maven环境隔离的配置及原理

pom.xml中builder节点上增加如下配置

<resources>
      <resource>
        <directory>src/main/resources.${deploy.type}</directory>
        <excludes>
          <exclude>*.jsp</exclude>
        </excludes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
</resources>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

其中${deploy.type}对应下述配置节点中的deploy.type属性值。 
接着在pom.xml中增加profiles节点

<profiles>
    <profile>
      <id>dev</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
         <deploy.type>dev</deploy.type>
      </properties>
    </profile>
    <profile>
      <id>beta</id>
      <properties>
        <deploy.type>beta</deploy.type>
      </properties>
    </profile>
    <profile>
      <id>prod</id>
      <properties>
        <deploy.type>prod</deploy.type>
      </properties>
    </profile>
  </profiles>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

其中activeByDefault是设置默认环境。

四、Maven环境隔离目录初始化

新建要隔离的文件夹,并把要隔离的文件分开,公共的留下,如下: 
 
注意:文件夹的取名,对应上述pom.xml里新增节点resources中的resources. {deploy.type}文件名,${deploy.type}对应profile中的id值。

五、IDEA中设置默认环境

在IDEA右侧Maven Project选中本地开发环境对应的环境,点击import change进行更新: 
 
单选一个环境,保证对应勾是实心的(因为有半选操作),多点或者半选可能造成环境错乱。

六、打包

参数是-P{环境标识符} 
环境标识符对应profile节点上设置的id,也指${deploy.type} 。 
命令:mvn clean package -Dmaven.test.skip=true -Pdev

 

猜你喜欢

转载自blog.csdn.net/majiawenzzz/article/details/81103746