如何修复Spring Boot项目构建失败:spring-boot-maven-plugin执行报错
Spring Boot项目构建错误修复方案
问题根源
你使用的Spring Boot 3.0.1基于Jakarta EE 9规范,而手动引入的hibernate-jpa-2.1-api是Java EE时代的JPA 2.1规范依赖,两者API包路径不同(Jakarta用jakarta.persistence,Java EE用javax.persistence),导致依赖冲突引发构建报错。
修复步骤
移除冲突依赖
打开你的pom.xml,删除以下多余的依赖配置:<dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.1-api</artifactId> <version>1.0.0.Final</version> </dependency>spring-boot-starter-data-jpa已经自动引入适配Spring Boot 3的Jakarta Persistence API,无需手动添加旧版JPA依赖。重新构建项目
在CMD中执行以下命令清理并重新构建:mvn clean install
修改后的完整pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.1</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.mycompany.formationspring</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build> </project>
内容的提问来源于stack exchange,提问作者Bebetot
相关产品推荐
相关产品推荐

