1. 程式人生 > >工具&MAven|Maven環境隔離應用場景及實戰

工具&MAven|Maven環境隔離應用場景及實戰

背景:在開發過程中,我們在測試和開發環境的配置不同。每次更改很麻煩。

coding

原來的資源結構

在這裡插入圖片描述

改造過程

一、在resource下分別建立目錄如下:

在這裡插入圖片描述

二、修改pom.xml檔案

根據建立的目錄結構新增如下的節點

<profiles>
    <profile>
        <id>dev</id><!--執行打包命令時將使用此處的id進行定位-->
        <properties>
            <env>dev</
env
>
<!--此處為對應的環境放置配置檔案的目錄,上一步建立的為dev,這裡設定為dev。下面兩個目錄配置參照此處--> </properties> <activation> <activeByDefault>true</activeByDefault><!--此處將dev設定為預設環境--> </activation> </profile> <profile> <id>test</
id
>
<properties> <env>test</env> </properties> </profile> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile> </profiles>

其中id代表定位座標,properties下的是自定義的屬性。

  • 在build下新增resources的節點
<build>
   <resources>
      <resource>
         <directory>src/main/resources</directory> <!--打包時包含src/main/resources目錄下所有檔案以及子目錄 -->
         <excludes> <!--打包時排除節點-->
            <exclude>environment/dev/*</exclude> <!--打包時排除src/main/resources/environment/dev下所有-->
            <exclude>environment/test/*</exclude><!-- 同上 -->
            <exclude>environment/prod/**</exclude><!-- 同上 -->
         </excludes>
      </resource>
           <resource>
               <!-- 打包時包含src/main/resources/environment/${env}下所有檔案,env變數值和上面定義的一致 -->
               <directory>src/main/resource/environment/${env}</directory>
               <!-- 可以指定排除檔案 -->
               <excludes>
                   <exclude>*.jsp</exclude>
               </excludes>
           </resource>
   </resources>
   
</build>
三、idea中使用

在這裡插入圖片描述

四、命令模式
mvn clean package -Ptest (-P+環境名稱)

其中test代表環境型別