Eclipse自动构建触发刷新致UI卡顿挂起问题求助
Eclipse自动构建时UI阻塞(显示"Refreshing")问题求助
两天前开始遇到这个问题:保存文件时会触发自动构建(不想关闭自动构建功能),但Eclipse构建期间UI会被完全阻塞,界面显示“Refreshing”。我已经抓取了Eclipse挂起及正常状态下的调用栈,现在想解决这个挂起问题。
已尝试的操作
- 手动刷新项目时卡顿
- 检查Error视图未发现异常
- 检查
.metadata/.log文件无异常 - 删除
.metadata/.plugins/org.eclipse.core.resources/.project文件 - 使用
-clean参数启动Eclipse - 使用
-clean和-clearPersistedState参数启动Eclipse - 增大JVM堆内存
问题现象
首次保存文件不会触发UI阻塞,但构建耗时较长;如果在构建过程中再次修改并保存文件,就会导致UI阻塞。
调用栈信息
"Worker-49: Building" #498 prio=5 os_prio=0 cpu=9125.00ms elapsed=662.08s tid=0x0000017e2de80070 nid=0x6c80 runnable [0x0000003ca1cfd000] java.lang.Thread.State: RUNNABLE at org.eclipse.core.internal.filesystem.local.LocalFileNatives.internalGetFileInfoW(Native Method) at org.eclipse.core.internal.filesystem.local.LocalFileNatives.fetchFileInfo(LocalFileNatives.java:116) at org.eclipse.core.internal.filesystem.local.LocalFileHandler.fetchFileInfo(LocalFileHandler.java:30) at org.eclipse.core.internal.filesystem.local.LocalFileNativesManager.fetchFileInfo(LocalFileNativesManager.java:65) at org.eclipse.core.internal.filesystem.local.LocalFile.fetchInfo(LocalFile.java:161) at org.eclipse.core.filesystem.provider.FileStore.fetchInfo(FileStore.java:260) at org.eclipse.core.filesystem.provider.FileStore.childInfos(FileStore.java:99) at org.eclipse.core.internal.localstore.UnifiedTree.getLocalList(UnifiedTree.java:360) at org.eclipse.core.internal.localstore.UnifiedTree.addChildren(UnifiedTree.java:148) at org.eclipse.core.internal.localstore.UnifiedTree.addNodeChildrenToQueue(UnifiedTree.java:254) at org.eclipse.core.internal.localstore.UnifiedTree.accept(UnifiedTree.java:120) at org.eclipse.core.internal.localstore.FileSystemResourceManager.refreshResource(FileSystemResourceManager.java:978) at org.eclipse.core.internal.localstore.FileSystemResourceManager.refresh(FileSystemResourceManager.java:961) at org.eclipse.core.internal.resources.Resource.refreshLocal(Resource.java:1573) at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.refreshResources(MavenBuilderImpl.java:280) at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.build(MavenBuilderImpl.java:176) at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:164) at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:1) at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$1(MavenBuilder.java:109) at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod$$Lambda$1256/0x0000000801a3aa90.call(Unknown Source) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:394) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:228) at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$0(MavenBuilder.java:100) at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod$$Lambda$1254/0x0000000801a3a388.call(Unknown Source) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:394) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:275) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:214) at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:83) at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:192) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1020) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:247) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:303) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:392) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:395) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:506) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:454) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:536) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:196) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:289) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
补充信息
按照建议打开了Eclipse的Maven Workspace Build视图,视图显示内容如下:
环境配置
- Eclipse:2023-03(4.27.0 - build 20230309-1520)
- Windows:11 22H2(build 22621.1555)
内容的提问来源于stack exchange,提问作者Nathan
相关产品推荐
相关产品推荐

