工具&MAven|Maven環境隔離應用場景及實戰
阿新 • • 發佈:2018-11-13
背景:在開發過程中,我們在測試和開發環境的配置不同。每次更改很麻煩。
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代表環境型別