Maven环境隔离的使用

Maven环境隔离

 

为什么我们要使用环境隔离?

      因为在真实的项目开发中,一般至少有三个环境:

Dev,beta,prop

      使用环境隔离可以使我们的项目选择性的使用配置文件,因为在不同的环境中,使用的配置文件的参数可能不同。所以使用maven环境隔离是很有必要的,可以非常的便捷的切换不同的环境。

 

笔者以前的一个Mall电商项目来进行演进maven环境隔离:

 

   原始的项目的pom文件为(重要节点):

                

 

我们现在开始来进行Maven环境隔离:

           我们以三个环境来隔离(dev,beta,prop)

 

项目的目录结构:

     

由于mappers ,applicationContext.xml , applicationContext-datasource.xml,generatorConfig.xml

是通用的,所以放在resources目录下即可,

 

其他文件,比如  datasource.properties,mall.properties

Zfbinfo.properties,在不同的环境下可能参数不一样,

所以我们需要进行隔离。

 

在原有的项目结构中创建:

          

将不同环境中参数相同的放在resources中,将不同的,分别放在不同的环境目录中。

 

然后我们需要对pom.xml进行修改

 

首先在  build节点里  添加如下代码

<resources>
  <resource>

<!—${deploy.type}指的是我们需要使用的环境的参数-->
<directory>src/main/resources.${deploy.type}</director>
    <excludes>
      <exclude>*.jsp</exclude>
    </excludes>
  </resource>
  <resource>

   <!—这里指的是不管哪个环境都需要的文件目录-->
    <directory>src/main/resources</directory>
  </resource>
</resources>

 

 

然后再project节点里,添加:

<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>prop</id>

    <properties>

      <deploy.type>prop</deploy.type>

    </properties>

  </profile>

</profiles>

 

来指定三个环境的名字,其中我们以一个环境为默认环境即可(即不指定环境时使用的环境),注意:只能设置一个默认环境(我们使用dev

 

 

 

现在我们就可以使用不同的环境来发布项目了:

         我们在idea的命令台打印maven命令:

   打包并跳过单元测试

   mvn clean package –Dmaven.test.skip=true –P+环境名

 

比如:使用dev环境

mvn clean package –Dmaven.test.skip=true –Pdev

 

当然我们在本地环境下,也可以来指定发布指定的环境

idea中,我们修改为pom.xml文件后:

  

发现多了一个我们配置的profiles,我们可以来勾选一个环境,然后启动tomcat来模拟环境。

 

 

 

 

猜你喜欢

转载自blog.csdn.net/jackcheng1117/article/details/81136878