You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加spring-boot-starter-parent后资源过滤失效问题求助

问题根源

Spring Boot的spring-boot-starter-parent父POM对maven-resources-plugin做了默认配置:它仅对特定后缀的文件(如.properties、.yml)启用变量过滤,并且会覆盖你原本针对src/main/resources目录的全局过滤规则。你的原始配置是对该目录下所有文件开启过滤,但引入父依赖后,这个规则被Spring Boot的默认设置覆盖,导致普通文件的变量替换失效。

解决办法

你可以通过两种方式恢复资源过滤功能:

方式一:显式指定需要过滤的文件

在你的资源配置中添加<includes>标签,明确列出要进行变量替换的文件范围。如果需要对所有文件生效,配置如下:

<build>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
      <includes>
        <include>**/*</include>
      </includes>
    </resource>
  </resources>  
</build>

如果只需要对特定类型文件过滤,比如.txt和.conf,可以把<include>改成:

<includes>
  <include>**/*.txt</include>
  <include>**/*.conf</include>
</includes>

方式二:覆盖Spring Boot的资源插件配置

如果需要完全自定义过滤逻辑,可以直接重新配置maven-resources-plugin,绕过父POM的默认设置:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-resources-plugin</artifactId>
      <version>3.3.0</version> <!-- 可根据需求指定兼容版本 -->
      <configuration>
        <resources>
          <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
          </resource>
        </resources>
      </configuration>
    </plugin>
  </plugins>
</build>

内容的提问来源于stack exchange,提问作者Martin Mucha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:55:18