求助:解决Gradle项目中java: package jakarta.persistence不存在问题
解决「java: package jakarta.persistence does not exist」错误(Spring Boot 3 + Gradle)
你的核心问题是依赖配置冗余且存在错误,Spring Boot的starter已经帮你管理了大部分依赖,手动重复引入反而会导致版本冲突或依赖缺失。以下是修正后的Gradle配置,以及关键修改点说明:
修正后的build.gradle
plugins { id 'java' id 'org.springframework.boot' version '3.2.0' id 'io.spring.dependency-management' version '1.1.4' } group = 'com.*group-name*' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' toolchain { languageVersion = JavaLanguageVersion.of(17) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa:3.2.0' implementation 'org.springframework.boot:spring-boot-starter-web:3.2.0' implementation 'org.springframework.boot:spring-boot-starter-validation:3.2.0' implementation 'mysql:mysql-connector-java:8.0.32' implementation 'org.jetbrains:annotations:22.0.0' developmentOnly 'org.springframework.boot:spring-boot-devtools:3.2.0' testImplementation 'org.springframework.boot:spring-boot-starter-test:3.2.0' } jar { archiveFileName = "${project.name}-${project.version}.jar" } tasks.named('test') { useJUnitPlatform() }
关键修改说明
- 移除错误依赖:删掉
implementation 'org.springframework.boot:spring-boot-gradle-plugin:3.2.0',这个是Gradle插件,已经在plugins块声明,不需要放到依赖列表中。 - 移除冗余依赖:
spring-boot-starter-data-jpa已经包含jakarta.persistence-api、hibernate-core、jakarta.transaction-api等JPA相关依赖;spring-boot-starter-web包含jakarta.servlet-api;spring-boot-starter-validation包含jakarta.validation-api,手动重复引入会破坏Spring Boot的依赖版本管理,导致冲突。 - 合并重复配置:把两个
java块合并,简化配置结构。
后续验证步骤
- 执行Gradle清理命令:
./gradlew clean(Windows环境使用gradlew clean) - 重新构建项目:
./gradlew build - 刷新IDE的Gradle依赖(比如IntelliJ中点击Gradle面板的刷新按钮)
完成以上步骤后,应该就能解决jakarta.persistence包不存在的问题,正常使用@Entity和@Id注解。
内容的提问来源于stack exchange,提问作者Joe Minor
相关产品推荐
相关产品推荐

