eclipse2020.12版本maven项目导入重新下载库的问题
5 2025-09-16 23:12
2020-12 这个版本正好踩中 m2e 1.16 的“embedded resolver bug”——
只要本地仓库里缺少 sources/javadoc,m2e 就会把它们解包到
只要本地仓库里缺少 sources/javadoc,m2e 就会把它们解包到
.metadata/.plugins/org.eclipse.m2e.jdt/
目录下,而不是硬链接到 ~/.m2/repository
,而且每次都重新拉取、解压,导致你看到的“jar 实体暴增 + 半小时下载”。现象复盘(与你描述 100% 吻合)
-
新建空 workspace → 导入 Maven 项目
-
Progress 里一直显示
Downloading sources and javadoc … xxxx.jar
-
.metadata
体积飙升,里面出现大量*.jar
、*-sources.jar
、*-javadoc.jar
实体文件 -
网络监控持续有流量,持续 20~40 min
根因
-
Eclipse 2020-12 自带 m2e 1.16.0/1.16.1
-
该版本为了“自动附加源码/文档”,会把
-sources
/-javadoc
下载后直接解压到.metadata
并当成 classpath 容器,而不是指向~/.m2/repository
-
如果私服/中央仓库速度一般,几百个依赖就要下半小时
-
每换一个 workspace 就重复一次(因为缓存目录在
.metadata
里)
官方 issue 记录
https://github.com/eclipse-m2e/m2e-core/issues/147
https://bugs.eclipse.org/bugs/show_bug.cgi?id=567672
已在 2021-03(m2e 1.17)及以后修复
https://github.com/eclipse-m2e/m2e-core/issues/147
https://bugs.eclipse.org/bugs/show_bug.cgi?id=567672
已在 2021-03(m2e 1.17)及以后修复
解决/规避办法(任选其一)
-
升级 Eclipse(最彻底)
直接换 2021-03 或更新版,m2e ≥1.17 就只会把索引放.metadata
,实体 jar 仍复用~/.m2/repository
,换 workspace 秒导。 -
不升级也能立刻止血
Window → Preferences → Maven →
取消勾选 "Download Artifact Sources" 和 "Download Artifact JavaDoc" → Apply & Close
重新导入项目,流量瞬间归零。 -
全局 settings 里把 sources/javadoc 关掉
在~/.m2/settings.xml
加xml
-
复制
<profiles> <profile> <id>no-sources</id> <properties> <downloadSources>false</downloadSources> <downloadJavadocs>false</downloadJavadocs> </properties> </profile> </profiles> <activeProfiles> <activeProfile>no-sources</activeProfile> </activeProfiles>
-
已经撑爆的 workspace
直接删.metadata
再重新导入(按第 2 步关掉下载),空间立即回收。
结论
不是 Maven 重新下载依赖,而是 Eclipse 2020-12 的 m2e 把 sources/javadoc 错误地缓存在
升级 Eclipse 或关掉“Download sources/javadoc”即可瞬间解决。
不是 Maven 重新下载依赖,而是 Eclipse 2020-12 的 m2e 把 sources/javadoc 错误地缓存在
.metadata
并反复下载。升级 Eclipse 或关掉“Download sources/javadoc”即可瞬间解决。
全部评论