maven resource filter 说明和配置方法

2020-08-25 17:28:18 762


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


相关文章

分类

{{name}}

标签

{{name}}

相关文章

广告区域
没有相关数据