首页 > 技术文章 > Maven环境隔离

zcl1116 2021-01-01 10:28 原文

在项目的开发会面临到各个阶段的开发时期,有本地开发环境(Local)、开发环境(Dev)、测试环境(Beta)、线上环境(Prod)在各个时期使用到的环境,数据库FTPServer等等都是不一样的,所以这里我们引入Maven环境隔离

1.首先打开项目的pom.xml文件找到build节点,在其内部添加子节点

   <resources>
        <resource>
            <directory>src/main/resources.${deploy.type}</directory>
            <excludes>
                <exclude>*.jsp</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>

2.在项目的pom.xml文件找到build节点,与其同一级别添加节点

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

3.在pom.xml文件下导入完两个节点后在文件左上角会有蓝色的impor changes,点之导入修改的内容。

4.此时在项目的右边找到Maven Projects窗口点击,随后点击左上角的蓝色更新按钮,即可发现出现profiles文件,里头的内容正是刚刚配置的内容

5.随后在项目的main文件夹下的找到resources文件夹,创建与之同级的文件夹:

  resources.beta
  resources.dev
  resources.prod

6.将项目中要隔离的环境从resources文件夹中拷贝至各个文件夹中,随后删除resources文件夹中的原文件,留下不需要隔离的公用环境。

7.为了方便后面我们切换环境的时候可以看到切换成功,我们可以在各环境的其中同一个文件中添加上注释 (#beta env,#dev env,#prod env)

8.执行打包代码,每打包一个的时候可以进入target文件夹下的classes包下找到我们做标记的包查看,此时会发现已经切换成功。

  mvn clean package -Dmaven.test.skip=true -Pbeta
  mvn clean package -Dmaven.test.skip=true -Pdev
  mvn clean package -Dmaven.test.skip=true -Pprod

9.此时我们执行此行代码,该代码没有添加-P参数,走的默认环境(上面配置文件有指定默认环境走哪个)

  mvn clean package -Dmaven.test.skip=true

10.最后我们将tomcat部署上项目的war包后运行tomcat,此时tomcat就会将我们在Maven Projects窗口上选择的环境部署上去(建议打勾一个环境)

推荐阅读