执行mvn clean install遇MavenResourcesFiltering绑定异常,Spring Boot项目无法运行
问题排查与解决方案
问题根源分析
这个No implementation for org.apache.maven.shared.filtering.MavenResourcesFiltering was bound错误主要由以下几个冲突和配置问题导致:
- Java版本配置矛盾:pom中
java.version指定为19,但maven-compiler-plugin强制设置source/target为1.8,Spring Boot 3.0要求Java 17+,版本不匹配导致插件执行时类加载异常。 - Jakarta EE与Java EE依赖冲突:Spring Boot 3.0基于Jakarta EE 9规范,但你引入了旧的
javax.servlet:servlet-api:2.5和javax.xml.bind系列依赖,与项目中的Jakarta版本依赖(如jakarta.servlet-api:6.0.0)冲突,干扰了Maven插件的类查找。 - 冗余依赖导致的依赖混乱:手动引入了
spring-context、spring-core等已被Spring Boot Starter包含的依赖,可能引发依赖版本不一致,间接影响Maven插件的正常运行。
解决方案
1. 统一Java版本配置
移除手动配置的maven-compiler-plugin,Spring Boot Parent会根据java.version自动配置编译器版本:
<!-- 移除以下插件配置 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin>
2. 清理冲突依赖
- 移除旧的Java EE依赖:
javax.servlet:servlet-api:2.5javax.xml.bind:jaxb-api、com.sun.xml.bind:jaxb-core、com.sun.xml.bind:jaxb-impl、javax.activation:activation
- 若需要JAXB支持,替换为Jakarta版本的依赖:
<dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <scope>runtime</scope> </dependency>
3. 移除冗余依赖
移除已被Spring Boot Starter包含的依赖:
spring-context、spring-core(被spring-boot-starter-web等starter包含)spring-security-core、spring-security-web、spring-security-config(被spring-boot-starter-security包含)
4. 强制刷新Maven依赖
执行以下命令清理并重新构建:
mvn clean install -U
内容的提问来源于stack exchange,提问作者Maxopp
相关产品推荐
相关产品推荐

