我们在做项目的时候,经常会添加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>