1、profiles是什麼?有什麼作用
在maven建構的項目都存在一個pom.xml的項目對象模型配置檔案,用于限制項目(如:jar包管理、建構管理等)。profiles是pom.xml中的一個配置項。
我們在開發項目時一般都會區分線上環境和測試環境,這兩個環境需要切換以适應不同的環境需求
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiQ3chVEa0V3bT9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvw1ca1mYoZ1MaZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zN5YjM1ETNwETNxUDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
正式環境的配置,一般放置于src/main/resources下,而測試環境放置于/src/test/resources下面。
profile的主要作用就是區分正式環境和測試環境的配置
2、如何配置
<profiles>
<profile>
<id>release</id>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>
</profile>
<profile>
<id>test</id>
<build>
<resources>
<resource>
<directory>src/test/resources</directory>
<includes>
<include>config/*.properties</include>
<include>log4j.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
<excludes>
<exclude>log4j.xml</exclude>
</excludes>
</resource>
</resources>
</build>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
如上, 我配置了兩個profile一個release用于正式環境釋出,test用于測試環境使用;預設開啟測試環境,activation-><activeByDefault>true</activeByDefault>
測試環境與正式環境隻是部分的配置不同,我們需要公用這部配置設定置。這就使用到了includes and excludes,用引入和排除配置檔案
3、差別建構釋出包
建構測試包: maven package -P test -Dmaven.test.skip=true
建構正式包:maven package -P release -Dmaven.test.skip=true