1. 概述
在这篇简短的教程中,我们将介绍几种清理本地 Maven 缓存的方法。清理缓存的目的通常是为了节省磁盘空间,或者清除那些已经不再引用的依赖构件。
我们会先介绍手动删除缓存目录的方式,也就是直接删除本地仓库文件夹;接着会使用 Maven Dependency Plugin 来完成清理,并介绍几种不同的插件参数选项,帮助你更灵活地控制清理行为。
2. 手动删除本地缓存目录
Maven 的本地仓库根据操作系统不同,默认存储在不同的路径下。由于 .m2
是隐藏目录,你可能需要先调整系统设置才能看到它。
- Windows 系统默认路径:
C:\Users\<用户名>\.m2
- macOS 系统默认路径:
/Users/<用户名>/.m2
- Linux 系统默认路径:
/home/<用户名>/.m2
找到该目录后,只需删除其中的 repository
文件夹即可:
rm -rf ~/.m2/repository
⚠️ 注意:如果你的 Maven 本地仓库不是默认路径,可以通过 Maven Help Plugin 来定位实际路径:
mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout
3. 使用 Maven Dependency Plugin 清理缓存
相比手动删除,使用 Maven 插件的方式更加“优雅”,也更适合集成到自动化流程中。
3.1 基本用法
首先,进入你的 Maven 项目根目录,然后执行:
mvn dependency:purge-local-repository
这个命令会做以下几件事:
✅ 解析项目依赖树(包括传递依赖)
✅ 删除本地缓存中的相关构件
✅ 重新从远程仓库下载这些依赖
也就是说,它会先下载缺失的依赖,再删除本地缓存,最后再重新下载一遍,这是默认行为。
3.2 避免预下载依赖
如果你只想删除缓存,不想触发依赖的预下载,可以加上 actTransitively=false
参数:
mvn dependency:purge-local-repository -DactTransitively=false
这样插件就不会去解析和下载传递依赖了。
3.3 完全跳过下载和重新解析
如果你只是想清掉本地缓存,完全不想有任何下载行为,可以再加上 reResolve=false
参数:
mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false
这个组合是最“干净”的清理方式,适合只想腾地方、不打算立即重新构建项目的场景。
4. 总结
本文介绍了两种清理 Maven 本地缓存的方法:
- ✅ 手动删除
.m2/repository
目录:简单粗暴,适合一次性清理 - ✅ 使用
mvn dependency:purge-local-repository
插件:更灵活,支持多种参数控制行为
根据你的实际需求选择合适的方式即可。如果是临时清理磁盘,直接删目录最省事;如果是 CI/CD 环境或需要保留部分缓存,推荐使用插件方式。