我们在做项目的时候,经常会添加resource的配置,如下内容。其会把src/main/resources目录下的所有文件都当做资源文件,通过<filtering>true</filtering>指定了这些资源文件将经过过滤,如果为false,则是不需要过滤。
同时需要设置filters,使用filters中指定的文件中的配置对resource中的引用变量进行解析。
通常使用于多环境的配置,若感兴趣,可见多环境配置
<maven>
<dependencies>
<dependency>
...
</dependency>
</dependencies>
<profiles>
<profile>
<!--不同环境Profile的唯一id-->
<id>dev</id>
<properties>
<!--profiles.active是自定义的字段(名字随便起),自定义字段可以有多个-->
<profiles.active>dev</profiles.active>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
<build>
<finalName>ROOT</finalName>
<filters>
<!-- 使用filters中指定的文件中的配置对resource中的引用变量进行解析 -->
<!-- 为什么叫filter呢,因为resource文件夹下的所有文件都要通过该filter来解析,非常像纱网漏斗过滤掉杂质 -->
<filter>src/main/resources/application-${profiles.active}.properties</filter>
</filters>
<plugins>
...
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>application-dev.properties</exclude>
<exclude>application-test.properties</exclude>
<exclude>application-prod.properties</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application-${profiles.active}.properties</include>
<include>application.yml</include>
<include>redisson-config.yml</include>
</includes>
</resource>
</resources>
</build>
</maven>