在新的 Eclipse 安装中重新索引本地 Maven Repo 失败并出现 java.nio.channels.OverlappingFileLockException

Fro*_*SHI 7 java eclipse maven

在Win10 上为 EE版本全新安装Eclipse:2020-12 (4.18.0) 每当我尝试通过首选项对话框重新索引它时,我都会收到以下错误:

Reindexing error
java.nio.channels.OverlappingFileLockException
Run Code Online (Sandbox Code Playgroud)

显示设置的 Eclipse 错误屏幕截图

我已经尝试过:

  • 将 Maven 仓库移动到一个新的和/或空的位置
  • 从全新的 Eclipse 安装和全新的工作区文件夹开始
  • 重新启动系统并安装新的 eclipse、eclipse 工作区和 maven repo

除了完全重新安装操作系统之外,任何关于要检查什么或在哪里查看的想法都将不胜感激。


这是 m2e 日志中错误的完整堆栈跟踪(根据@nitind 的要求):

2021-03-02 16:02:18,461 [Worker-10: Indexing Local Repository...] ERROR o.e.m.c.i.i.nexus.NexusIndexManager - Unable to re-index workspace://
java.nio.channels.OverlappingFileLockException: null
    at java.base/sun.nio.ch.FileLockTable.checkList(FileLockTable.java:229)
    at java.base/sun.nio.ch.FileLockTable.add(FileLockTable.java:123)
    at java.base/sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1297)
    at java.base/java.nio.channels.FileChannel.tryLock(FileChannel.java:1178)
    at org.apache.maven.index.context.DefaultIndexingContext.unlockForcibly(DefaultIndexingContext.java:927)
    at org.apache.maven.index.context.DefaultIndexingContext.prepareIndex(DefaultIndexingContext.java:244)
    at org.apache.maven.index.context.DefaultIndexingContext.purge(DefaultIndexingContext.java:612)
    at org.eclipse.m2e.core.internal.index.nexus.NexusIndexManager.purgeCurrentIndex(NexusIndexManager.java:529)
    at org.eclipse.m2e.core.internal.index.nexus.NexusIndexManager.reindexWorkspace(NexusIndexManager.java:561)
    at org.eclipse.m2e.core.internal.index.nexus.NexusIndexManager.updateIndex(NexusIndexManager.java:1072)
    at org.eclipse.m2e.core.internal.index.nexus.NexusIndex.updateIndex(NexusIndex.java:147)
    at org.eclipse.m2e.core.ui.internal.preferences.MavenSettingsPreferencePage$2.runInWorkspace(MavenSettingsPreferencePage.java:263)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:42)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Run Code Online (Sandbox Code Playgroud)

Fro*_*SHI 0

通过删除指向系统上其他 Maven 安装的M2_HOME系统变量,该问题最终得到解决。

Eclipse 似乎在重新索引操作期间调用了第二个,从而导致OverlappingFileLockException