Eclipse构建清爽挂

问题描述 投票:0回答:1

这种行为是两天前才开始的。当我保存文件时,自动构建开始。(我不想关闭自动构建。)Eclipse 在构建期间阻止 UI。它说“清爽”。

我在挂起时和正常时记录了 Eclipse 的调用堆栈。我找到了这个线程。我能做些什么来修复挂起?

这是我尝试过的:

  • 手动刷新项目挂了
  • 检查错误视图并没有发现任何东西
  • 检查了.metadata/.log,什么都没发现
  • 删除.metadata/.plugins/org.eclipse.core.resources/.project
  • 使用 -clean 选项运行 Eclipse
  • 使用 -clean 和 -clearPersistedState 选项运行 Eclipse
  • 增加堆大小

我注意到保存文件不会触发 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)

@howlger 建议我在 Eclipse 中打开 Maven Workspace Build 视图。这是它显示的内容。

配置

  • Eclipse:2023-03(4.27.0 - build 20230309-1520)
  • Windows:11 版本 22H2 build 22621.1555
eclipse build refresh freeze
1个回答
0
投票

Eclipse 将执行刷新操作作为构建的一部分。如果项目目录有很深的大目录树,那么这将需要一段时间。减少目录树的大小可以解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.