Jmockit转Mockito插件故障排查:gradle rewriteRun执行卡住
JMockit转Mockito时gradle rewriteRun停滞的排查方案
启用详细日志
- 执行
gradle rewriteRun --info,输出Gradle执行的细节,包括Rewrite处理文件的进度、依赖加载情况。 - 在
build.gradle中添加Rewrite调试日志配置:
能看到Rewrite内部的规则匹配、代码转换等具体执行步骤。logging { level = LogLevel.DEBUG logger 'org.openrewrite', LogLevel.DEBUG } - 查看Gradle daemon日志:默认路径是
~/.gradle/daemon/<gradle版本>,里面记录了daemon的运行状态,可能找到停滞根源。
排查步骤
- 缩小处理范围:只针对单个或少量测试类执行,比如运行
gradle rewriteRun -Prewrite.activeRecipes=org.openrewrite.java.testing.jmockit.JMockitToMockito -Prewrite.include=com/example/MyTest.java,排查是否是特定文件导致停滞。 - 检查依赖冲突:确认项目中JMockit和Mockito的依赖版本是否兼容,避免同时引入冲突的mock框架依赖。
- 监控JVM资源:用jps、jstat或jvisualvm查看执行进程,排查是否内存溢出或CPU占用过高。如果是内存问题,在
gradle.properties中调整JVM参数,比如org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m。 - 核对Rewrite版本:确保Rewrite插件和JMockit转Mockito规则的版本匹配,避免版本不兼容引发异常。
- 禁用缓存和daemon:执行
gradle rewriteRun --no-build-cache --no-daemon,排除缓存或daemon异常导致的停滞。
内容的提问来源于stack exchange,提问作者bala
相关产品推荐
相关产品推荐

