执行OpenRewrite JavaxMigrationToJakarta Recipe后代码无变更,求助排查原因
Javax到Jakarta迁移无变更+包不存在错误的解决办法
在多模块Maven项目中执行以下OpenRewrite迁移命令:
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \ -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-migrate-java:RELEASE \ -Drewrite.activeRecipes=org.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
日志显示已执行Rewrite但代码无变更,同时报错package javax.persistence does not exist,问题根源和解决办法如下:
核心原因
OpenRewrite需要通过编译类路径解析代码中的依赖引用,当类路径中缺少javax.persistence相关依赖时,它无法识别代码中需要迁移的JPA相关类、注解,因此不会生成任何变更。
解决步骤
- 检查所有子模块的
pom.xml,确保已引入javax.persistence-api(或对应版本的JPA依赖,如hibernate-jpa-2.2-api),且依赖范围设置为compile。避免使用provided或test范围,否则该依赖不会被加入编译类路径。 - 先执行
mvn clean compile完成依赖下载与项目编译,确保类路径完整后,再重新运行迁移命令。 - 若项目使用
dependencyManagement统一管理依赖版本,确认子模块中已显式引入该JPA依赖(父pom仅声明版本,子模块需添加<dependency>节点引入)。
内容的提问来源于stack exchange,提问作者Spring
相关产品推荐
相关产品推荐

