Maven的环境隔离

来源:互联网 发布:安卓手机编程软件 编辑:程序博客网 时间:2024/06/10 20:03

一、前言

在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>

其中${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>

其中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