eclipse2020.12版本maven项目导入重新下载库的问题

6 2025-09-16 23:12

2020-12 这个版本正好踩中 m2e 1.16 的“embedded resolver bug”——
只要本地仓库里缺少 sources/javadoc,m2e 就会把它们解包到 .metadata/.plugins/org.eclipse.m2e.jdt/ 目录下,而不是硬链接到 ~/.m2/repository,而且每次都重新拉取、解压,导致你看到的“jar 实体暴增 + 半小时下载”。

现象复盘(与你描述 100% 吻合)
  1. 新建空 workspace → 导入 Maven 项目
  2. Progress 里一直显示
    Downloading sources and javadoc … xxxx.jar
  3. .metadata 体积飙升,里面出现大量 *.jar*-sources.jar*-javadoc.jar 实体文件
  4. 网络监控持续有流量,持续 20~40 min

根因
  • Eclipse 2020-12 自带 m2e 1.16.0/1.16.1
  • 该版本为了“自动附加源码/文档”,会把 -sources/-javadoc 下载后直接解压到 .metadata 并当成 classpath 容器,而不是指向 ~/.m2/repository
  • 如果私服/中央仓库速度一般,几百个依赖就要下半小时
  • 每换一个 workspace 就重复一次(因为缓存目录在 .metadata 里)


解决/规避办法(任选其一)
  1. 升级 Eclipse(最彻底)
    直接换 2021-03 或更新版,m2e ≥1.17 就只会把索引放 .metadata,实体 jar 仍复用 ~/.m2/repository,换 workspace 秒导。
  2. 不升级也能立刻止血
    Window → Preferences → Maven →
    取消勾选 "Download Artifact Sources""Download Artifact JavaDoc" → Apply & Close
    重新导入项目,流量瞬间归零。
  3. 全局 settings 里把 sources/javadoc 关掉
    ~/.m2/settings.xml
    xml
     
  1. 复制
    <profiles>
      <profile>
        <id>no-sources</id>
        <properties>
          <downloadSources>false</downloadSources>
          <downloadJavadocs>false</downloadJavadocs>
        </properties>
      </profile>
    </profiles>
    <activeProfiles>
      <activeProfile>no-sources</activeProfile>
    </activeProfiles>
     
  2. 已经撑爆的 workspace
    直接删 .metadata 再重新导入(按第 2 步关掉下载),空间立即回收。

结论
不是 Maven 重新下载依赖,而是 Eclipse 2020-12 的 m2e 把 sources/javadoc 错误地缓存在 .metadata 并反复下载。
升级 Eclipse 或关掉“Download sources/javadoc”即可瞬间解决。

 

全部评论

·